diff options
author | Hume2 <teratux.mail@gmail.com> | 2018-08-28 21:27:24 +0200 |
---|---|---|
committer | Hume2 <teratux.mail@gmail.com> | 2018-08-28 21:27:24 +0200 |
commit | 3f788eddd335594e1177cd3e2f9734e02872b1ca (patch) | |
tree | 30062f2bf8fca98b825952e84ceb64ab84351272 | |
parent | 1e1f0681a2630d05d5fb3efc6cad518bf15aba4d (diff) |
Make the bike less controllable when faster
-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() |