kieran Posted November 28, 2017 Posted November 28, 2017 Hey, so I know how to make a 3D image in the GTA world, but I want to animate it to turn like a gif, I don't know any way of doing this though... Is there any suggestions/solutions to how I can move it when the client renders? Here is code to create the image size = 3 local img = dxCreateTexture("circle.png") --The image function createIMG() -- x,y,z, targetx,targety,targetz,texture,width,color,lookx,looky,lookz x,y,z = -2329.3, -1605.6, 483.2 --Coordinates image = dxDrawMaterialLine3D (x, y, z, x+size, y, z+size/2,img, size, tocolor(255,255,255,255), x, y+10, z) --draw the image --How would I rotate the image? end addEventHandler("onClientRender", root, createIMG) The only way I could think of is making the image an element somehow and then rotating it... But I don't know how I'd do that, thanks for any advice/help.
Mr.Loki Posted November 29, 2017 Posted November 29, 2017 For it to rotate you need to use the lookAt args and and use sine and cosine to rotate around the x and y. Also the way u calculated the size made the image oval and i fixed that. local size = 3 local img = point(500,-1) local rot = 0 function createIMG() local x,y,z = local rx = math.sin(rot)*1 local ry = math.cos(rot)*1 dxDrawMaterialLine3D( x, y, z, x, y, z+size, img, size, -1, x+rx, y+ry, z ) rot = rot +.01 end addEventHandler("onClientRender", root, createIMG) [REL]Cinema Experience Beta 2.0 [TUT]Object offsets with OOP. [TUT] Adding a Discord bot to your server. Discord: Loki#7355
kieran Posted November 29, 2017 Author Posted November 29, 2017 @Mr.Loki Thanks, but I want it to rotate clockwise, not spin on the z axis...
Mr.Loki Posted November 29, 2017 Posted November 29, 2017 1 hour ago, kieran said: @Mr.Loki Thanks, but I want it to rotate clockwise, not spin on the z axis... Try this local size = 1 local img = point(100,-1) local rot = 0 function createIMG(dt) local x,y,z = getElementPosition( localPlayer ) local rx = math.sin(rot)*size local rz = math.cos(rot)*size dxDrawMaterialLine3D( x-rx, y, 1+z-rz, x+rx, y, 1+z+rz, img, size*2, -1, x, y+1, 1+z ) rot = rot +(.01*dt/17) end addEventHandler("onClientPreRender", root, createIMG) [REL]Cinema Experience Beta 2.0 [TUT]Object offsets with OOP. [TUT] Adding a Discord bot to your server. Discord: Loki#7355
kieran Posted November 29, 2017 Author Posted November 29, 2017 Thanks @Mr.Loki, one question though... why do you pass dt?
Moderators IIYAMA Posted November 30, 2017 Moderators Posted November 30, 2017 https://wiki.multitheftauto.com/wiki/OnClientPreRender dt is the timeslice. Read the wiki. It is the delay/time between the frames, created ONLY by the onClientPreRender If you have 60 fps. The timeslice is around: 1000(1sec) / 60 = 16,666666666666667 ms. 1 Do you want to improve your Lua programming skills and make less mistakes? Start with Lua Language Server! Useful functions 3x Spoiler checkPassiveTimer getScreenStartPositionFromBox getPedGender Tutorials 4x Spoiler Scaling DX Events Attach an addEventHandler on a group of elements Debugging
Slim Posted December 1, 2017 Posted December 1, 2017 https://community.multitheftauto.com/?p=resources&s=details&id=12052
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