xFabel

x[ إستفسار + طلب ]x كيفية عمل أنميشن على اللوحة

Recommended Posts

Posted (edited)

السلام عليكم مبرمجين ;) 

 :shock:كنت حاب اشوف كيف اعمل انيموشن مثل ضاهر عندكم في جيفت

https://imgur.com/a/vZiwKnU

 :grin:ابغى فانكشات

 

اب

اببب

Edited by liwahadri

Share this post


Link to post
start = getTickCount()
DxAnimation = function (text,color1,color2)
local now = getTickCount()
x_,y_,w_,h_ = 254, 368, 465, 25
local progress = (now - start) / (start + 1000 - start)
local h,r,g = interpolateBetween(h_-50,color1 or 0, color1 or 0, 0,color2 or 255, color2 or 255, progress, "CosineCurve")
dxDrawRectangle (x_,y_-25,w_,h_, tocolor ( 0, 0, 0, 200 ) )
dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 165 ) )
dxDrawText(text or 'oskar',x_,y_-50,w_+x_,h_+y_, tocolor(r,g,r),  1.00, "bankgothic", "center", "center", false, false, false, true, false)
end

addEventHandler("onClientRender", root,function ()
DxAnimation ('Welcome To BlackHeart',0,255)
end)

اي خطاء قوله ✌️

  • Like 2

Share this post


Link to post
3 hours ago, #\_oskar_/# said:

start = getTickCount()
DxAnimation = function (text,color1,color2)
local now = getTickCount()
x_,y_,w_,h_ = 254, 368, 465, 25
local progress = (now - start) / (start + 1000 - start)
local h,r,g = interpolateBetween(h_-50,color1 or 0, color1 or 0, 0,color2 or 255, color2 or 255, progress, "CosineCurve")
dxDrawRectangle (x_,y_-25,w_,h_, tocolor ( 0, 0, 0, 200 ) )
dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 165 ) )
dxDrawText(text or 'oskar',x_,y_-50,w_+x_,h_+y_, tocolor(r,g,r),  1.00, "bankgothic", "center", "center", false, false, false, true, false)
end

addEventHandler("onClientRender", root,function ()
DxAnimation ('Welcome To BlackHeart',0,255)
end)

اي خطاء قوله ✌️

مشكور خوي @#\_oskar_/#

ضبطت بس لو اسوي له نهايه لازم استخدم كيل تايمر صحيح؟

setTimer(function()
dxDrawRectangle (x_,y_-25*sx,w_,h_, tocolor ( 0, 0, 0, 200 ) )
dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 255 ) )
dxDrawText("Welcome To BATTLEFIELD" or 'oskar',x_,y_-51,w_+x_,h_+y_, tocolor(r,g,r),  1.00, font, "center", "center", false, false, false, true, false)
end, 1000, 0)

 

1 hour ago, Abdul KariM said:

تقدر تسويها بالمتغيرات

؟؟؟ :lol::lol: ار يو درينك

Share this post


Link to post
41 minutes ago, liwahadri said:

مشكور خوي @#\_oskar_/#

ضبطت بس لو اسوي له نهايه لازم استخدم كيل تايمر صحيح؟


setTimer(function()
dxDrawRectangle (x_,y_-25*sx,w_,h_, tocolor ( 0, 0, 0, 200 ) )
dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 255 ) )
dxDrawText("Welcome To BATTLEFIELD" or 'oskar',x_,y_-51,w_+x_,h_+y_, tocolor(r,g,r),  1.00, font, "center", "center", false, false, false, true, false)
end, 1000, 0)

 

؟؟؟ :lol::lol: ار يو درينك

تقدر تسوي ايفنت

onClientRender

, افضل لك من التايمر

  • Like 1

Share this post


Link to post
34 minutes ago, liwahadri said:

ضبطت بس لو اسوي له نهايه لازم استخدم كيل تايمر صحيح؟

هيك

start = getTickCount()
DxAnimation = function (text,color1,color2)
local now = getTickCount()
x_,y_,w_,h_ = 254, 368, 465, 25
local progress = (now - start) / (start + 1000 - start)
local h,r,g = interpolateBetween(h_-50,color1 or 0, color1 or 0, 0,color2 or 255, color2 or 255, progress, "CosineCurve")
dxDrawRectangle (x_,y_-25,w_,h_, tocolor ( 0, 0, 0, 200 ) )
dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 165 ) )
dxDrawText(text or 'oskar',x_,y_-50,w_+x_,h_+y_, tocolor(r,g,r),  1.00, "bankgothic", "center", "center", false, false, false, true, false)
if now - start >= 5000 then
removeEventHandler("onClientRender", root,render)
start = getTickCount()
end
end

function render()
DxAnimation ('Welcome To BlackHeart',0,255)
end
addEventHandler("onClientRender", root,render)

أو هيك

function render()
DxAnimation ('Welcome To BlackHeart',0,255)
end
addEventHandler("onClientRender", root,render)

setTimer(function()
removeEventHandler("onClientRender", root,render)
end,5000,1)

 

38 minutes ago, liwahadri said:

؟؟؟ :lol::lol: ار يو درينك

و يب المتغيرات تنفع لكن الانتربولات اصعب وأحسن ض1

  • Like 1

Share this post


Link to post
6 minutes ago, #BrosS said:

هيك


start = getTickCount()DxAnimation = function (text,color1,color2)local now = getTickCount()x_,y_,w_,h_ = 254, 368, 465, 25local progress = (now - start) / (start + 1000 - start)local h,r,g = interpolateBetween(h_-50,color1 or 0, color1 or 0, 0,color2 or 255, color2 or 255, progress, "CosineCurve")dxDrawRectangle (x_,y_-25,w_,h_, tocolor ( 0, 0, 0, 200 ) )dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 165 ) )dxDrawText(text or 'oskar',x_,y_-50,w_+x_,h_+y_, tocolor(r,g,r),  1.00, "bankgothic", "center", "center", false, false, false, true, false)if now - start >= 5000 thenremoveEventHandler("onClientRender", root,render)start = getTickCount()endendfunction render()DxAnimation ('Welcome To BlackHeart',0,255)endaddEventHandler("onClientRender", root,render)

أو هيك


function render()DxAnimation ('Welcome To BlackHeart',0,255)endaddEventHandler("onClientRender", root,render)setTimer(function()removeEventHandler("onClientRender", root,render)end,5000,1)

 

و يب المتغيرات تنفع لكن الانتربولات اصعب وأحسن ض1

شكرا ي غآلي في طريق عشان افهم النتروبلات بتوين ؟

Share this post


Link to post

بحاول أشرحلك كود أوسكار لكن احذرك انا سيء بالشرح م اعرف حتى اشرح كيف تشغل الحاسوب

 .جيبلك الوقت اللي قاعد وانت تستخدم فيه الجهاز بالميلي سيكند . ونستعملها احسن لأنه عدد متحرك ورح اشرحلك ليه نحتاج عدد متحركgetTickCount أولا وظيفة 

ثانية = 1000 ميليسيكند

start = getTickCount() هذي هو حطها بالبداية حتى تجيبله وقته وهو مستعمل الجهاز وحطها خارج الرندر حتى تكون ثانبتة

now أيضا تجيبلك الوقت لكن الحالي اسمها ناو لأنها داخل الرندر يعني الوقت قاعد يمشي معك

progress = now - start = 0 | الإثنين نفس الرقم رح يعطيك 0 وبما ان ناو متحرك رح يعيد يعد من الصفر ويصعد

الحين نقسم على 1000 لأن الأرقمن حق الانتروبولات يطلب عدد من 0 الى 1 ووظيفتنا التيك كاونت تعطيك عدد فوق 1000 لذا 1000 قسمة 1000 يساوي 1

progress = (now - start) /1000  (كان قادر يسوي هيك بس مدري ليه ينقص ويزيد ض)

الأقواص ضرورية لأن الأولية للأقواص ينقص ثم يقسم بدون أقواص رح يقسم على العدد اللي قبله

نقسم على 1000 عشان يبدأ يعد من 0.000

الأنيميشن تخلص لما العدد يوصل ل1 وبما أن كلشي موجود برندر فما رح يتوقف العد والعدد رح يعيد من 0 الى 1 في حلقة غير منتهية عشان هيك الأنيميشن ماتخلص

نرجع ليه قسمنا على 1000 بالضبط عشان العد يوصل ل1 في ثانية واحدة واذا تجرب الكود رح تشوف الأنيميشن تطلع وترجع كل ثانية . فإذا حبيت الحركة تكون ابطأ مثلا كل ثانتين تقسم على 1600 تقريبا الخ واذا اردت اسرع تقسم على عدد أقل

وبالنسبة للكود للي اضفته انا عشان توقف الحركة

if now - start >= 5000 then اذا وصل العد ل5000 يتوقف او اي شي تبيه و5000 تعني 5 ثواني

طبعا البرمجةة كلها ريضايات مافي شي معقد مع الممارسة يتوصح كلشي

بالنسبة للوظيفة نفسها سهلة جدا مسوي شرح لها يارب تقدر تفهم ض1 شرحتلك جزء فقط وان شاء الله تكون فهمت

 

كل هذا الشي نقدر نسويه بالمتغيرات لكن الشغل رح يكون أطول لذا من الأحسن هذا

  • Like 2

Share this post


Link to post
Posted (edited)
4 hours ago, #BrosS said:

بحاول أشرحلك كود أوسكار لكن احذرك انا سيء بالشرح م اعرف حتى اشرح كيف تشغل الحاسوب

 .جيبلك الوقت اللي قاعد وانت تستخدم فيه الجهاز بالميلي سيكند . ونستعملها احسن لأنه عدد متحرك ورح اشرحلك ليه نحتاج عدد متحركgetTickCount أولا وظيفة 

ثانية = 1000 ميليسيكند

start = getTickCount() هذي هو حطها بالبداية حتى تجيبله وقته وهو مستعمل الجهاز وحطها خارج الرندر حتى تكون ثانبتة

now أيضا تجيبلك الوقت لكن الحالي اسمها ناو لأنها داخل الرندر يعني الوقت قاعد يمشي معك

progress = now - start = 0 | الإثنين نفس الرقم رح يعطيك 0 وبما ان ناو متحرك رح يعيد يعد من الصفر ويصعد

الحين نقسم على 1000 لأن الأرقمن حق الانتروبولات يطلب عدد من 0 الى 1 ووظيفتنا التيك كاونت تعطيك عدد فوق 1000 لذا 1000 قسمة 1000 يساوي 1

progress = (now - start) /1000  (كان قادر يسوي هيك بس مدري ليه ينقص ويزيد ض)

الأقواص ضرورية لأن الأولية للأقواص ينقص ثم يقسم بدون أقواص رح يقسم على العدد اللي قبله

نقسم على 1000 عشان يبدأ يعد من 0.000

الأنيميشن تخلص لما العدد يوصل ل1 وبما أن كلشي موجود برندر فما رح يتوقف العد والعدد رح يعيد من 0 الى 1 في حلقة غير منتهية عشان هيك الأنيميشن ماتخلص

نرجع ليه قسمنا على 1000 بالضبط عشان العد يوصل ل1 في ثانية واحدة واذا تجرب الكود رح تشوف الأنيميشن تطلع وترجع كل ثانية . فإذا حبيت الحركة تكون ابطأ مثلا كل ثانتين تقسم على 1600 تقريبا الخ واذا اردت اسرع تقسم على عدد أقل

وبالنسبة للكود للي اضفته انا عشان توقف الحركة

if now - start >= 5000 then اذا وصل العد ل5000 يتوقف او اي شي تبيه و5000 تعني 5 ثواني

طبعا البرمجةة كلها ريضايات مافي شي معقد مع الممارسة يتوصح كلشي

بالنسبة للوظيفة نفسها سهلة جدا مسوي شرح لها يارب تقدر تفهم ض1 شرحتلك جزء فقط وان شاء الله تكون فهمت

 

كل هذا الشي نقدر نسويه بالمتغيرات لكن الشغل رح يكون أطول لذا من الأحسن هذا

معليك حبيبي:lol:

4 hours ago, #BrosS said:

بحاول أشرحلك كود أوسكار لكن احذرك انا سيء بالشرح م اعرف حتى اشرح كيف تشغل الحاسوب

 .جيبلك الوقت اللي قاعد وانت تستخدم فيه الجهاز بالميلي سيكند . ونستعملها احسن لأنه عدد متحرك ورح اشرحلك ليه نحتاج عدد متحركgetTickCount أولا وظيفة 

ثانية = 1000 ميليسيكند

start = getTickCount() هذي هو حطها بالبداية حتى تجيبله وقته وهو مستعمل الجهاز وحطها خارج الرندر حتى تكون ثانبتة

now أيضا تجيبلك الوقت لكن الحالي اسمها ناو لأنها داخل الرندر يعني الوقت قاعد يمشي معك

progress = now - start = 0 | الإثنين نفس الرقم رح يعطيك 0 وبما ان ناو متحرك رح يعيد يعد من الصفر ويصعد

الحين نقسم على 1000 لأن الأرقمن حق الانتروبولات يطلب عدد من 0 الى 1 ووظيفتنا التيك كاونت تعطيك عدد فوق 1000 لذا 1000 قسمة 1000 يساوي 1

progress = (now - start) /1000  (كان قادر يسوي هيك بس مدري ليه ينقص ويزيد ض)

الأقواص ضرورية لأن الأولية للأقواص ينقص ثم يقسم بدون أقواص رح يقسم على العدد اللي قبله

نقسم على 1000 عشان يبدأ يعد من 0.000

الأنيميشن تخلص لما العدد يوصل ل1 وبما أن كلشي موجود برندر فما رح يتوقف العد والعدد رح يعيد من 0 الى 1 في حلقة غير منتهية عشان هيك الأنيميشن ماتخلص

نرجع ليه قسمنا على 1000 بالضبط عشان العد يوصل ل1 في ثانية واحدة واذا تجرب الكود رح تشوف الأنيميشن تطلع وترجع كل ثانية . فإذا حبيت الحركة تكون ابطأ مثلا كل ثانتين تقسم على 1600 تقريبا الخ واذا اردت اسرع تقسم على عدد أقل

وبالنسبة للكود للي اضفته انا عشان توقف الحركة

if now - start >= 5000 then اذا وصل العد ل5000 يتوقف او اي شي تبيه و5000 تعني 5 ثواني

طبعا البرمجةة كلها ريضايات مافي شي معقد مع الممارسة يتوصح كلشي

بالنسبة للوظيفة نفسها سهلة جدا مسوي شرح لها يارب تقدر تفهم ض1 شرحتلك جزء فقط وان شاء الله تكون فهمت

 

كل هذا الشي نقدر نسويه بالمتغيرات لكن الشغل رح يكون أطول لذا من الأحسن هذا

اذا سويت بدون انيمشن كيف اسويه؟ يعني الوان بس

Edited by liwahadri

Share this post


Link to post
6 hours ago, liwahadri said:

اذا سويت بدون انيمشن كيف اسويه؟ يعني الوان بس

نعم تقدر

Share this post


Link to post
On 19/05/2019 at 11:53, #BrosS said:

نعم تقدر

 

On 18/05/2019 at 21:29, Abdul KariM said:

تقدر تسويها بالمتغيرات

 

On 18/05/2019 at 18:45, #\_oskar_/# said:

start = getTickCount()
DxAnimation = function (text,color1,color2)
local now = getTickCount()
x_,y_,w_,h_ = 254, 368, 465, 25
local progress = (now - start) / (start + 1000 - start)
local h,r,g = interpolateBetween(h_-50,color1 or 0, color1 or 0, 0,color2 or 255, color2 or 255, progress, "CosineCurve")
dxDrawRectangle (x_,y_-25,w_,h_, tocolor ( 0, 0, 0, 200 ) )
dxDrawRectangle (x_,y_,w_,h, tocolor ( 255,255,255, 165 ) )
dxDrawText(text or 'oskar',x_,y_-50,w_+x_,h_+y_, tocolor(r,g,r),  1.00, "bankgothic", "center", "center", false, false, false, true, false)
end

addEventHandler("onClientRender", root,function ()
DxAnimation ('Welcome To BlackHeart',0,255)
end)

اي خطاء قوله ✌️

fProgress ممكن شرح لارقمنت

Share this post


Link to post
12 minutes ago, Mohamed Saber said:

fProgress ممكن شرح لارقمنت

 

On 19/05/2019 at 01:42, #BrosS said:

بحاول أشرحلك كود أوسكار لكن احذرك انا سيء بالشرح م اعرف حتى اشرح كيف تشغل الحاسوب

 .جيبلك الوقت اللي قاعد وانت تستخدم فيه الجهاز بالميلي سيكند . ونستعملها احسن لأنه عدد متحرك ورح اشرحلك ليه نحتاج عدد متحركgetTickCount أولا وظيفة 

ثانية = 1000 ميليسيكند

start = getTickCount() هذي هو حطها بالبداية حتى تجيبله وقته وهو مستعمل الجهاز وحطها خارج الرندر حتى تكون ثانبتة

now أيضا تجيبلك الوقت لكن الحالي اسمها ناو لأنها داخل الرندر يعني الوقت قاعد يمشي معك

progress = now - start = 0 | الإثنين نفس الرقم رح يعطيك 0 وبما ان ناو متحرك رح يعيد يعد من الصفر ويصعد

الحين نقسم على 1000 لأن الأرقمن حق الانتروبولات يطلب عدد من 0 الى 1 ووظيفتنا التيك كاونت تعطيك عدد فوق 1000 لذا 1000 قسمة 1000 يساوي 1

progress = (now - start) /1000  (كان قادر يسوي هيك بس مدري ليه ينقص ويزيد ض)

الأقواص ضرورية لأن الأولية للأقواص ينقص ثم يقسم بدون أقواص رح يقسم على العدد اللي قبله

نقسم على 1000 عشان يبدأ يعد من 0.000

الأنيميشن تخلص لما العدد يوصل ل1 وبما أن كلشي موجود برندر فما رح يتوقف العد والعدد رح يعيد من 0 الى 1 في حلقة غير منتهية عشان هيك الأنيميشن ماتخلص

نرجع ليه قسمنا على 1000 بالضبط عشان العد يوصل ل1 في ثانية واحدة واذا تجرب الكود رح تشوف الأنيميشن تطلع وترجع كل ثانية . فإذا حبيت الحركة تكون ابطأ مثلا كل ثانتين تقسم على 1600 تقريبا الخ واذا اردت اسرع تقسم على عدد أقل

وبالنسبة للكود للي اضفته انا عشان توقف الحركة

if now - start >= 5000 then اذا وصل العد ل5000 يتوقف او اي شي تبيه و5000 تعني 5 ثواني

طبعا البرمجةة كلها ريضايات مافي شي معقد مع الممارسة يتوصح كلشي

بالنسبة للوظيفة نفسها سهلة جدا مسوي شرح لها يارب تقدر تفهم ض1 شرحتلك جزء فقط وان شاء الله تكون فهمت

 

كل هذا الشي نقدر نسويه بالمتغيرات لكن الشغل رح يكون أطول لذا من الأحسن هذا

 

Share this post


Link to post
5 minutes ago, Mohamed Saber said:

ابي شرح لارقمنت من ويكي 
fProgress


interpolateBetween ( float x1, float y1, float z1, float x2, float y2, float z2, float fProgress, string strEasingType, [ float fEasingPeriod, float fEasingAmplitude, float fEasingOvershoot ] )

ما فهمته

عدد مابين 0 و 1 يمثل تقدم الحركة 

0 بداية الحركة

1 : نهاية الحركة

العدد اللي بينهم هو مدة الحركة او افهمها مثل ماتبي ماعرفت اشرحها ض1. الشرح موجود اللي كتبته وتقدر تستخدم المتغيرات مثل

progress = 0

... your code

progress = progress + 0.01

..

if progress == 1 then

your code نهاية الحركة

 

Share this post


Link to post

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.