domi Posted January 11, 2015 Share Posted January 11, 2015 I'm more an artist than a coder and was looking at the FPS Script to get a rough idea but can't figure out how to control a spacecraft. Basically : orbit around the spacecraft on key toggle W - accelerate S - slow down / backward A / D - roll Mouse - yaw / pitch with zero gravity If there is already a tutorial that I missed (YouTube ?) let me know, otherwise any help most welcome Quote Link to comment Share on other sites More sharing options...
MarkusR Posted January 14, 2015 Share Posted January 14, 2015 u need from Window class :KeyDown(Key.A) and for self.entity: any movement functions or maybe physics. zero gravity with physics :SetGravityMode(false) http://www.leadwerks.com/werkspace/page/documentation/_/command-reference/entity/ non physics with Translate u can put it up and down,forwand & backwards, left & right with Turn pitch, yaw and roll not global = local means along/around the objext axis x,y,z. Quote PC : Win 10 Pro 64 Bit , 4x cores ~2 GHz , 8 GB RAM , AMD R7 265 2D : Photoline , Zooner Photo Studio 13 , Art Rage Studio 3.5.4 , Ashampoo Snap 7 , ... 3D : Shade 15 Basic , Carrara 8.5 & DAZ Studio 4.8 , Cheetah 3D 6.3.2 , Via Cad 8 Music : Samplitude Music Studio , Music Creator 7 IDE : Leadwerks Engine 3.x , Unity 5.x , (Unreal 4.8.x) , AGK v2.x , Construct 2 , (Clickteam Fusion 2.5) , ShiVa 1.9 , Game Maker Studio , MS Visual Studio .Net , Android Studio , Monkey , ... Link to comment Share on other sites More sharing options...
josk Posted January 14, 2015 Share Posted January 14, 2015 From one of my projects called Lunar lander, very simple but easy to adapt and add more. Give you model Character controller and some mass. function Script:Start() self.entity:SetGravityMode(false) self.rot = Vec3(0,0,0) self.input = 0 end function Script:UpdatePhysics() local v = self.entity:GetVelocity() local turnspeed=1 if v.y <= 4 then if (App.window:KeyDown(Key.Space)) then self.entity:AddForce(0,0.5*Time:GetSpeed(),0) else if v.y >= -1 then self.entity:AddForce(0,-0.05*Time:GetSpeed(),0) end end end if (App.window:KeyDown(Key.W)) then self.input = 0.5 end if (App.window:KeyDown(Key.S)) then self.input = -0.5 end if (App.window:KeyDown(Key.Q)) then self.rot.y=self.rot.y-turnspeed*Time:GetSpeed() end if (App.window:KeyDown(Key.E)) then self.rot.y=self.rot.y+turnspeed*Time:GetSpeed() end self.entity:SetInput(self.rot.y,0,self.input,0,false,1) end Quote Elite Cobra Squad Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.