diff options
-rw-r--r-- | init.lua | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -133,26 +133,29 @@ end function bike.on_step(self, dtime) + local current_v = get_v(self.object:get_velocity()) * get_sign(self.v) + self.v = (current_v + self.v*3) / 4 if self.driver then local ctrl = self.driver:get_player_control() local yaw = self.object:get_yaw() + local agility = 0 + + if self.v > 0.4 then + agility = 1/math.sqrt(self.v) + else + agility = 1.58 + end + if ctrl.up then - self.v = self.v + 0.1 + self.v = self.v + 0.3 * agility elseif ctrl.down then - self.v = self.v - 0.1 + self.v = self.v - 1.2 * agility end + if ctrl.left then - if self.v < 0 then - self.object:set_yaw(yaw - (1 + dtime) * 0.03) - else - self.object:set_yaw(yaw + (1 + dtime) * 0.03) - end + self.object:set_yaw(yaw + (1 + dtime) * 0.06 * agility) elseif ctrl.right then - if self.v < 0 then - self.object:set_yaw(yaw + (1 + dtime) * 0.03) - else - self.object:set_yaw(yaw - (1 + dtime) * 0.03) - end + self.object:set_yaw(yaw - (1 + dtime) * 0.06 * agility) end end local velo = self.object:get_velocity() |