xFabel

×[مساعده]× تحريك الصوره ب interpolateBetween

Recommended Posts

ذا كود من صنعي حاولت اسوي تجربه ب تحريك صوره موشن بس ماتتحرك حد يفهمني سالفه؟ ولاحد يعطني كود كامل ابغى افهم كيف تتحرك صوره

addEventHandler("onClientRender", root,
    function()
	local tick = getTickCount()
	height, width = interpolateBetween(0, 0, 0, 0, 10, 0, tick, "Linear")
        dxDrawImage(x * (1213/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1146/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1225/sx), y * (659/sy), x * (30/sx), y * (30/sy), ":guieditor/images/reset.png", 0, 0, 0, tocolor(0, 102, 255, 255), false)
        dxDrawImage(x * (1159/sx), y * (659/sy),x * (30/sx)+width, y * (30/sy)+height, ":guieditor/images/plus.png", 0, 0, 0, tocolor(102, 204, 153, 255), false)
    end
)

 

Share this post


Link to post
On 20/09/2019 at 19:17, xFabel said:

ذا كود من صنعي حاولت اسوي تجربه ب تحريك صوره موشن بس ماتتحرك حد يفهمني سالفه؟ ولاحد يعطني كود كامل ابغى افهم كيف تتحرك صوره


addEventHandler("onClientRender", root,
    function()
	local tick = getTickCount()
	height, width = interpolateBetween(0, 0, 0, 0, 10, 0, tick, "Linear")
        dxDrawImage(x * (1213/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1146/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1225/sx), y * (659/sy), x * (30/sx), y * (30/sy), ":guieditor/images/reset.png", 0, 0, 0, tocolor(0, 102, 255, 255), false)
        dxDrawImage(x * (1159/sx), y * (659/sy),x * (30/sx)+width, y * (30/sy)+height, ":guieditor/images/plus.png", 0, 0, 0, tocolor(102, 204, 153, 255), false)
    end
)

 

أول شيء بالأول ، حاول تسويها ب متغيرات بالأرقام ، بعدها سويها ب العداد getTickCount()

Share this post


Link to post
3 hours ago, coNolel said:

أول شيء بالأول ، حاول تسويها ب متغيرات بالأرقام ، بعدها سويها ب العداد getTickCount()

مشكور علي رد

سويت كذا وصارت سريعه ؟ كيف ابطئ

local math_min = math.min
local movingX = 0

addEventHandler("onClientRender", root,
    function()
	local tick = getTickCount()
	movingX, movingY = interpolateBetween(10, 0, 0, 0, 0, 0, math_min(movingX+0.02), "Linear")
        dxDrawImage(x * (1213/sx) + movingX, y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1146/sx) + movingX, y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1225/sx), y * (659/sy), x * (30/sx), y * (30/sy), ":guieditor/images/reset.png", 0, 0, 0, tocolor(0, 102, 255, 255), false)
        dxDrawImage(x * (1159/sx), y * (659/sy),x * (30/sx)+width, y * (30/sy)+height, ":guieditor/images/plus.png", 0, 0, 0, tocolor(102, 204, 153, 255), false)
    end
)
Quote

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

مفهمتك وش تقصد هنا؟

Edited by xFabel

Share this post


Link to post
On 21/09/2019 at 23:11, xFabel said:

مشكور علي رد

سويت كذا وصارت سريعه ؟ كيف ابطئ


local math_min = math.min
local movingX = 0

addEventHandler("onClientRender", root,
    function()
	local tick = getTickCount()
	movingX, movingY = interpolateBetween(10, 0, 0, 0, 0, 0, math_min(movingX+0.02), "Linear")
        dxDrawImage(x * (1213/sx) + movingX, y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1146/sx) + movingX, y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1225/sx), y * (659/sy), x * (30/sx), y * (30/sy), ":guieditor/images/reset.png", 0, 0, 0, tocolor(0, 102, 255, 255), false)
        dxDrawImage(x * (1159/sx), y * (659/sy),x * (30/sx)+width, y * (30/sy)+height, ":guieditor/images/plus.png", 0, 0, 0, tocolor(102, 204, 153, 255), false)
    end
)

مفهمتك وش تقصد هنا؟

العداد = tick

 

Share this post


Link to post

الكود ناقص من ناحية المتغيرات الاكس والواي و...

 

local time_ = 3000; -- عدل في هذا عشان تسرع أو تبطئ

addEventHandler("onClientRender", root, function()
	if not tick then tick = getTickCount() end; 
	local progress_ = ( getTickCount() - tick ) / ( ( tick + time_ ) - tick );
	height, width = interpolateBetween(0, 0, 0, 0, 10, 0, progress_, "Linear")
        dxDrawImage(x * (1213/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1146/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1225/sx), y * (659/sy), x * (30/sx), y * (30/sy), ":guieditor/images/reset.png", 0, 0, 0, tocolor(0, 102, 255, 255), false)
        dxDrawImage(x * (1159/sx), y * (659/sy),x * (30/sx)+width, y * (30/sy)+height, ":guieditor/images/plus.png", 0, 0, 0, tocolor(102, 204, 153, 255), false)
    end
)

 

Edited by Sha67

Share this post


Link to post
20 hours ago, Sha67 said:

الكود ناقص من ناحية المتغيرات الاكس والواي و...

 


local time_ = 3000; -- عدل في هذا عشان تسرع أو تبطئ

addEventHandler("onClientRender", root, function()
	if not tick then tick = getTickCount() end; 
	local progress_ = ( getTickCount() - tick ) / ( ( tick + time_ ) - tick );
	height, width = interpolateBetween(0, 0, 0, 0, 10, 0, progress_, "Linear")
        dxDrawImage(x * (1213/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1146/sx), y * (645/sy), x * (57/sx), y * (57/sy), ":guieditor/images/cross.png", 0, 0, 0, tocolor(14, 17, 19, 255), false)
        dxDrawImage(x * (1225/sx), y * (659/sy), x * (30/sx), y * (30/sy), ":guieditor/images/reset.png", 0, 0, 0, tocolor(0, 102, 255, 255), false)
        dxDrawImage(x * (1159/sx), y * (659/sy),x * (30/sx)+width, y * (30/sy)+height, ":guieditor/images/plus.png", 0, 0, 0, tocolor(102, 204, 153, 255), false)
    end
)

 

ولو اسويه تتكرر ؟ يعني الرقم يصير يتغير كل ثواني من

0-255 وبعدين ينزل

Share this post


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

Linear بدل ال  

بـ

CosineCurve

همم وهذآ الي يخلي الصوره تتحرك وترجع؟ وماتوقف؟🤔

Share this post


Link to post

للافاده فقط

الفكره رياضيات 

هذا الفرق بين اللينير او الخطي وال كوزاين

لو بتلاحظ ركز عالامبلتيود او بمعنى اصح اقصى ازاحه بعيد عن النيوترال اكسس

او عن نقطة السكون

p_1376oasxh2.png

الحين شوف البيهيف حق الكوزاين

p_1376spufp1.png

الحين لو استخدمت

SineCurve

وش بيصير بيصير تقريبا نفس بيهيف الكوزاين لكن بدال ما يبدا 

من اقصى شي راح يبدا من اقل شي

ودوره كامله مب نص دوره زي الكوزاين

مدري كيف اوصلك الفكره لكن صوره للساين توضحلك الموضوع

p_137603k5r1.png

وانا اكتشفت بعد ما رفعت الصور ان الويكي فيه ملخص للكلام 

ذا اصلا

شف اللنك بيفيدك

https://wiki.multitheftauto.com/wiki/Easing

بالتوفيق

Edited by Master_MTA

Share this post


Link to post

ترا مأستفدت شيئ ب موضوع انا حبيت بس اخلي يتكرر التأيم بين

255

ينزل 0

ويرجع نفس شيئ

و بنسبه ل

Linear

ترا أدري هاذي تغير وضعية الحركه بس :/

 

Share this post


Link to post
local number = 0

number = ( ( number < 255 and number +1 ) or 0 )

 

  • Like 1

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.