Jump to content

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


iiv03

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
)

 

Link to comment
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()

Link to comment
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
Link to comment
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

 

Link to comment

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

 

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
Link to comment
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 وبعدين ينزل

Link to comment
  • 2 weeks later...

للافاده فقط

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

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

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

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

p_1376oasxh2.png

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

p_1376spufp1.png

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

SineCurve

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

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

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

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

p_137603k5r1.png

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

ذا اصلا

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

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

بالتوفيق

Edited by Master_MTA
Link to comment
  • 4 weeks later...
  • 4 weeks later...

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.
×
×
  • Create New...