Hi,
I am trying to make a plane in my game.
It works, but I want to know how I would make it accelerate slower (slowing down and speeding up slower).
Because if I click W it takes half a second, and then it’s already up to max speed and it also happens when I click S.
I am using a BodyGyro to rotate the plane and a BodyVelocity to make it move.
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local Engine = script.Obj.Value.Body.Engine
local camera = workspace.CurrentCamera
local Mouse = game.Players.LocalPlayer:GetMouse()
local flying = false
local speed = 0.5
local bv = Instance.new("BodyVelocity", Engine)
bv.MaxForce = Vector3.new()
bv.P = 99999999
local bg = Instance.new("BodyGyro", Engine)
bg.MaxTorque = Vector3.new()
bg.D = 350
local function Fly()
flying = true
while flying do
bv.MaxForce = Vector3.new(40000000,40000000,40000000)
bg.MaxTorque = Vector3.new(40000000,40000000,40000000)
rs.RenderStepped:Wait()
uis.MouseBehavior = Enum.MouseBehavior.LockCenter
if uis:IsKeyDown(Enum.KeyCode.W) then
bv.Velocity = Mouse.Hit.LookVector * 150
elseif uis:IsKeyDown(Enum.KeyCode.S) and not uis:IsKeyDown(Enum.KeyCode.W) then
bv.Velocity = Vector3.new(0,0,0)
bv.MaxForce = Vector3.new(0,0,0)
bg.MaxTorque = Vector3.new(bg.MaxTorque.X, 0, bg.MaxTorque.Z)
elseif not uis:IsKeyDown(Enum.KeyCode.W) then
bv.Velocity = Vector3.new(0,0,0)
bv.MaxForce = Vector3.new(0,0,0)
bg.MaxTorque = Vector3.new(bg.MaxTorque.X, 0, bg.MaxTorque.Z)
end
bg.CFrame = CFrame.new(camera.CFrame.Position, camera.CFrame.Position + camera.CFrame.LookVector * 20)
end
end
local function endFlying()
bg.MaxTorque = Vector3.new()
bv.MaxForce = Vector3.new()
uis.MouseBehavior = Enum.MouseBehavior.Default
flying = false
end
uis.InputBegan:Connect(function(input)
print("AVO")
if input.KeyCode == Enum.KeyCode.E then
if not flying then
Fly()
else
endFlying()
end
end
end)