Popular Post #BrosS Posted April 26, 2017 Popular Post Share Posted April 26, 2017 (edited) بسم الله الرحمن الرحيم السلام عليكم ورحمة الله تعالى وبركاته لأن أظن أغلب الناس ماتعرفه وتحسبه معقد interpolateBetween جاي أشرح لكم فنكشن تابعو معي يمكن الشرح يكون طويل لكن اتمنى تستفيدو Quote من الأول ؟ interpolate between ماذا تعني تعني الإقتحام مابين أو التأثير بين بكل بساطة كل ماعليك معرفته هو مثل من - الى Quote ماذا يفعل الفنشكن هذا ؟ الفنكشن يسمح لك تسوي أنيمايشن (حركة) بين 6 نقاط حيث تتمثل الثلاث الأولى من إحداثيات البداية والثلاث الثانية النهاية سواءا كان : لوحة - صورة - تصاميم دي إكس - ماركر - كاميرا .. أي شي له إحداثيات # الجملة التركيبية للوظيفة float float float interpolateBetween ( float x1, float y1, float z1, float x2, float y2, float z2, float fProgress, string strEasingType) : العناصر المطلوبة x1, y2, z2 : (..إحداثيات بداية التأثير ( الحركة x2, y2, z2 : إحداثيات نهاية التأثير fProgress : مدة الإحراز أو التقدم التي يأخذها التأثير ( الوقت ) ويكون نوعا ما ب ميلي ثانية strEasingType : نوع الحركة أو التأثير اللذي تريده الأمثلة رح توضح أكثر أعرف انكم مافهمتو بعد Quote ذا ؟ fProgress كيف نجيب حتى نجيب قيمة ب ميلي سكند أو ميلي ثانية نستخدم getTickCount Quote وش ذا ؟؟ fProgress الوظيفة تقوم بجلب مدة الوقت اللي جهازك كان شغال فيه بالميلي سكند وببعض حسابات نكون Quote وهذا EasingType ؟ اللي نحطه بالنهاية moveObject أنواع الحركة ... تماما مثل Quote من وين اجيب أنواع الحركة هذي ؟؟ من الويكي https://wiki.multitheftauto.com/wiki/Easing الموقع فيه جدول يوضح لك كل أنواع الحركة وكيف تأثيرها مثال لهذا "Linear" : كيفية تأثيرها يعني بشكل مستقيم دون تأثيرات ثانية بالمثال يتضح المقال # الأمثلة # مثال 1 المثال يوريني كيف نخلي لوحة تجي من فوق الى الوسط sx, sy = guiGetScreenSize() test = guiCreateWindow((sx - 454) / 2, (sy - 502) / 2, 454, 502, "test", false) -- لوحة function pop() local rh = interpolateBetween( (sy - 2) / 2,0,0, (sy - 502) / 2,0,0, (getTickCount()-start)/1800, "OutElastic") -- نعرف قيمة واحدة لأننا نريد الإرتفاع فقط guiSetPosition(test,(sx - 454) / 2,rh, false) -- نخلي موضع اللوحة على حسب اللي نبيه end bindKey("F2", "down", function () guiSetVisible(test,true) addEventHandler("onClientRender",root,pop) -- الفنشكن يستخدم مع الرندر start = getTickCount() -- نعيد تعريف وقتنا حتى يتعرف عليه عند الضغط على الزر end) Quote مافهمت شي getTickCount()-start/1800 نعيد نجيب الوقت ننقصه من وقت البداية اللي هو عند الضغط على الزر نقسمه على وقت النهاية اللوحة رح تجي لمدة ثانية و 800 ميلي سكند وليس بعد على الأرجح رح يطلعنا start a nil value لذا نقترح نعرفه مرتين "OutElastic" بهذا الشكل ض2 Quote ليش استعملت قيمة واحدة , مو هي المفروض ثلاث نقدر نستعمل واحدة او اثنين او ثلاث شرط مايكونو فوق ثلاث Quote ليش حطيتهم 0 لأننا مانحتاجهم نحطهم صفر مثال 2 cam نوضح كيف نسوي كاميرا تتحرك من موضع لاخر عند كتابة الكومند start = getTickCount() addCommandHandler("cam", function() start = getTickCount() addEventHandler("onClientRender",root,moveCam) end) function moveCam() x1, y1, z1 = interpolateBetween(500,600,452,800,454,411,(getTickCount()-start)/4000, "Linear") x2, y2, z2 = interpolateBetween(510,620,512,850,464,471,(getTickCount()-start)/4000, "Linear") setCameraMatrix(x1, y1, z1, x2, y2, z2) end الإحداثيات غير مجربة قاعد أخبص فقط لتوضيع المعنى مثال 3 نوري كيف نلون ليبل (كتابة) عند دخول تأشيرة الماوس إليه start = getTickCount() test = guiCreateWindow(454,503, 454, 502, "test", false) label = guiCreateLabel(100, 0, 252, 20, "testing", false, test) guiLabelSetColor(label, 255, 0, 0,255) -- نحط مثلا لون أحمر function colorTheLabel() color1, color2, color3 = interpolateBetween(255,0,0,0,255,0, (getTickCount()-start)/2000, "Linear") -- نحوله من أحمر الى أخضر لمدة ثانيتين end function RestColor() color4, color5, color6 = interpolateBetween(0,255,0,255,0,0, (getTickCount()-start)/2000, "Linear") -- نحوله من أحمر الى أخضر لمدة ثانيتين end addEventHandler("onClientMouseEnter",label, function() start = getTickCount() removeEventHandler("onClientRender",root,RestColor) addEventHandler("onClientRender",root,colorTheLabel) guiLabelSetColor(label, color1, color2, color3,255) end ) addEventHandler("onClientMouseLeave",label, function() start = getTickCount() removeEventHandler("onClientRender",root,colorTheLabel) addEventHandler("onClientRender",root,RestColor) guiLabelSetColor(label, color4, color5, color6,255) end ) الكتابة رح تتلون من احمر الى أخضر عند دخول الماوس اليه و يتحول من اخضر الى أحمر عند الخروج صفحة الويكي https://wiki.multitheftauto.com/wiki/InterpolateBetween هذا كل شي لقد تعبت أتمنى الشرح يكون واضح أي شي غير مفهوم أو غلط يرجى التعليق لأن بعض الأكواد غير مجربة اللعبة ماسحها الموضوع سيتم إعادة تنسيقه حين رجوع جهازي إلي السلام خير الختام Edited April 26, 2017 by #BrosS 5 1 Link to comment
Adham Posted April 26, 2017 Share Posted April 26, 2017 شرح مفيد من شخص رأئع وجميل تقبل مروري البسيط ..# 1 Link to comment
^iiEcoo'x_) Posted April 26, 2017 Share Posted April 26, 2017 الله الله ، مبدع من يوم يومك 1 Link to comment
MR.StoRm Posted April 26, 2017 Share Posted April 26, 2017 مبددع ي بروس , شرح جميل ورآئع جداً جداً, آستمر ..! 1 Link to comment
#BrosS Posted April 27, 2017 Author Share Posted April 27, 2017 14 hours ago, Deativated said: شرح مفيد من شخص رأئع وجميل تقبل مروري البسيط ..# 14 hours ago, #_iMr.[E]coo said: الله الله ، مبدع من يوم يومك 13 hours ago, MR.StoRm said: مبددع ي بروس , شرح جميل ورآئع جداً جداً, آستمر ..! أتمنى أنكم استفدتم من الموضوع 1 Link to comment
MR.StoRm Posted April 27, 2017 Share Posted April 27, 2017 Just now, #BrosS said: أتمنى أنكم استفدتم من الموضوع بروس طيب الدي آكس نفس طريقة الوندو ؟@#BrosS Link to comment
iMr.WiFi..! Posted April 27, 2017 Share Posted April 27, 2017 5 hours ago, #BrosS said: يب نفسهم طيب مثال ؟ يكون على كل المقاسات ! Link to comment
MR.StoRm Posted April 28, 2017 Share Posted April 28, 2017 20 hours ago, iMr.WiFi..! said: طيب مثال ؟ يكون على كل المقاسات ! @#BrosS Link to comment
#Soking Posted April 28, 2017 Share Posted April 28, 2017 بس للتوضيح دى قيمه و تزيد و تنقص حسب نزع الحركه مو شرط أحدثت تقدر تستخدمها في الافا أو أو او 1 Link to comment
#BrosS Posted April 28, 2017 Author Share Posted April 28, 2017 4 hours ago, #Soking said: بس للتوضيح دى قيمه و تزيد و تنقص حسب نزع الحركه مو شرط أحدثت تقدر تستخدمها في الافا أو أو او وانا وش قلت مسوي مثال عن تلوين شي نفس كلامك Link to comment
MR.StoRm Posted May 2, 2017 Share Posted May 2, 2017 On ٢٨/٤/٢٠١٧ at 14:33, MR.StoRm said: @#BrosS ي نوب هات مثال خلصنا ,@#BrosS Link to comment
iMr.WiFi..! Posted May 3, 2017 Share Posted May 3, 2017 21 hours ago, MR.StoRm said: ي نوب هات مثال خلصنا ,@#BrosS sx,sy = guiGetScreenSize() -- نجيب مقاسات الشاشة x,y = (sx/1366), (sy/768) -- نسوي بعض العمليات عشان تزبط على كل الشاشات من الشاشة الاصلية function Ex () local Width1 = interpolateBetween(x*0,0,0,x*1366,0,0,(getTickCount()-start)/4000,"Linear") -- هنا نستعمل ارقمنت واحد وهو العرض local Width2 = interpolateBetween(x*0,0,0,x*312,0,0,(getTickCount()-start)/1000,"Linear") -- نفس الشيء dxDrawRectangle(x*0, y*0, Width2, y*768, tocolor(0, 0, 0, 160), false) -- يسوي مستطيل صغير dxDrawRectangle(x*0, y*0, Width1, y*768, tocolor(0, 0, 0, 160), false) -- يسوي مستطيل يغطي الشاشة كلها end bindKey("F3","down",function ( ) -- نسوي ضغط زر start = getTickCount() -- نسوي ستارت عشان التوقيت او progress addEventHandler("onClientRender",root,Ex) -- نضيف الحدث او التأثير برندر end ) -- اند للوظيفة واغلاق للقوس 1 Link to comment
MR.StoRm Posted May 3, 2017 Share Posted May 3, 2017 (edited) On ٢٧/٤/٢٠١٧ at 17:55, iMr.WiFi..! said: طيب مثال ؟ يكون على كل المقاسات ! , مشكور واي فاي , Edited May 3, 2017 by MR.StoRm Link to comment
coNolel Posted May 3, 2017 Share Posted May 3, 2017 1 hour ago, iMr.WiFi..! said: sx,sy = guiGetScreenSize() -- نجيب مقاسات الشاشة x,y = (sx/1366), (sy/768) -- نسوي بعض العمليات عشان تزبط على كل الشاشات من الشاشة الاصلية function Ex () local Width1 = interpolateBetween(x*0,0,0,x*1366,0,0,(getTickCount()-start)/4000,"Linear") -- هنا نستعمل ارقمنت واحد وهو العرض local Width2 = interpolateBetween(x*0,0,0,x*312,0,0,(getTickCount()-start)/1000,"Linear") -- نفس الشيء dxDrawRectangle(x*0, y*0, Width2, y*768, tocolor(0, 0, 0, 160), false) -- يسوي مستطيل صغير dxDrawRectangle(x*0, y*0, Width1, y*768, tocolor(0, 0, 0, 160), false) -- يسوي مستطيل يغطي الشاشة كلها end bindKey("F3","down",function ( ) -- نسوي ضغط زر start = getTickCount() -- نسوي ستارت عشان التوقيت او progress addEventHandler("onClientRender",root,Ex) -- نضيف الحدث او التأثير برندر end ) -- اند للوظيفة واغلاق للقوس مشكور على المثال ، والله ما كنت ادري انو x,y = (sx/1366), (sy/768) -- نسوي بعض العمليات عشان تزبط على كل الشاشات من الشاشة الاصلية تخليك توازن على شاشتك وكل الشاشات مرة وحدة ههههههههههه Link to comment
iMr.WiFi..! Posted May 3, 2017 Share Posted May 3, 2017 2 hours ago, coNolel said: مشكور على المثال ، والله ما كنت ادري انو x,y = (sx/1366), (sy/768) -- نسوي بعض العمليات عشان تزبط على كل الشاشات من الشاشة الاصلية تخليك توازن على شاشتك وكل الشاشات مرة وحدة ههههههههههه العفو , هو انت لما تصمم من الجيو الايتدور او من نفس الجهاز , الجيو اديتور راح ياخذ المقاسات من جهازك فقط , انت اعرف مقاسات جهازك عشان تعدل علي السطر ذاك : ) لأنو لو تلاحظ (sx/1366), (sy/768) 1366,768 هي مقاسات شاشتي : ) 2 hours ago, MR.StoRm said: , مشكور واي فاي , عفواً , كنت ما أعرف الطريقة بس بروس علمني طريقة الاحداثيات وسويت الطريقة بنفسي : ) شكراً لبروس : Link to comment
#BrosS Posted May 3, 2017 Author Share Posted May 3, 2017 (edited) 1 hour ago, coNolel said: مشكور على المثال ، والله ما كنت ادري انو x,y = (sx/1366), (sy/768) -- نسوي بعض العمليات عشان تزبط على كل الشاشات من الشاشة الاصلية تخليك توازن على شاشتك وكل الشاشات مرة وحدة ههههههههههه نفس الجيو اديتيور . الجيو اديتور يقسملك الاحداثيات على مقاس شاشتك على طول دون ما تتعب وفيه 3 طرق كلها نفس النتائج , مثلا sx,sy = guiGetScreenSize() x,y = (sx/1366), (sy/768) dxDrawRectangle(x*542, y*457....) = dxDrawRectangle(sx*0.3967,sy*0.5950....) 542/1366 = 0.3967 بالتقريب 457/768 = 0.5950 بالتقريب والثالثة sx,sy = guiGetScreenSize() dxDrawRectangle(sx*(542/1366), sy*(457/768)....) 8 minutes ago, iMr.WiFi..! said: عفواً , كنت ما أعرف الطريقة بس بروس علمني طريقة الاحداثيات وسويت الطريقة بنفسي : ) شكراً لبروس : حياك الله Edited May 3, 2017 by #BrosS Link to comment
MR.StoRm Posted May 3, 2017 Share Posted May 3, 2017 5 hours ago, iMr.WiFi..! said: sx,sy = guiGetScreenSize() -- نجيب مقاسات الشاشة x,y = (sx/1366), (sy/768) -- نسوي بعض العمليات عشان تزبط على كل الشاشات من الشاشة الاصلية function Ex () local Width1 = interpolateBetween(x*0,0,0,x*1366,0,0,(getTickCount()-start)/4000,"Linear") -- هنا نستعمل ارقمنت واحد وهو العرض local Width2 = interpolateBetween(x*0,0,0,x*312,0,0,(getTickCount()-start)/1000,"Linear") -- نفس الشيء dxDrawRectangle(x*0, y*0, Width2, y*768, tocolor(0, 0, 0, 160), false) -- يسوي مستطيل صغير dxDrawRectangle(x*0, y*0, Width1, y*768, tocolor(0, 0, 0, 160), false) -- يسوي مستطيل يغطي الشاشة كلها end bindKey("F3","down",function ( ) -- نسوي ضغط زر start = getTickCount() -- نسوي ستارت عشان التوقيت او progress addEventHandler("onClientRender",root,Ex) -- نضيف الحدث او التأثير برندر end ) -- اند للوظيفة واغلاق للقوس ليش تسوون ضرب , x*0 إلخ.. ؟ Link to comment
Abu-Solo Posted May 3, 2017 Share Posted May 3, 2017 شرح مفهوم ولكنه غير مفهوم فـ نفس الوقت بس فهمت منه لأنه ما ينفهم , ولكن حلو الشرح بس مو حلو . يعطيك العافية ., شرح جميل Link to comment
MR.StoRm Posted May 3, 2017 Share Posted May 3, 2017 46 minutes ago, Abu-Solo said: شرح مفهوم ولكنه غير مفهوم فـ نفس الوقت بس فهمت منه لأنه ما ينفهم , ولكن حلو الشرح بس مو حلو . يعطيك العافية ., شرح جميل يخربيتك Link to comment
#BrosS Posted May 3, 2017 Author Share Posted May 3, 2017 3 hours ago, Abu-Solo said: شرح مفهوم ولكنه غير مفهوم فـ نفس الوقت بس فهمت منه لأنه ما ينفهم , ولكن حلو الشرح بس مو حلو . يعطيك العافية ., شرح جميل مرورك جميل لكنه غير جميل وتعليقك حلو بس مو حلو Link to comment
Abu-Solo Posted May 4, 2017 Share Posted May 4, 2017 23 hours ago, #BrosS said: مرورك جميل لكنه غير جميل وتعليقك حلو بس مو حلو انت احلي بس مو احلي,, Link to comment
Dr.Marco Posted May 4, 2017 Share Posted May 4, 2017 18 minutes ago, Abu-Solo said: انت احلي بس مو احلي,, انها المخدرات يشيخ Link to comment
Abu-Solo Posted May 5, 2017 Share Posted May 5, 2017 7 hours ago, Dr.Marco said: انها المخدرات يشيخ مافيه أحسن منها Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now