summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--not/Hero.lua31
-rw-r--r--not/Player.lua4
2 files changed, 20 insertions, 15 deletions
diff --git a/not/Hero.lua b/not/Hero.lua
index 1181080..38eb749 100644
--- a/not/Hero.lua
+++ b/not/Hero.lua
@@ -156,18 +156,23 @@ function Hero:update (dt)
end
-- Jumping.
- if self:isJumping() and self.jumpTimer > 0 then
- if not self._jumpevent then
- self._jumpevent = true
- self:onJump()
- end
- if self.jumpCounter == 0 or self.jumpCounter == 1 then
- local x = self:getLinearVelocity()
- self:setLinearVelocity(x,-160)
- self.jumpTimer = self.jumpTimer - dt
+ if self:isJumping() then
+ if self.jumpTimer > 0 then
+ if not self._jumping then
+ self._jumping = true
+ self:onJumpStarted()
+ end
+ if self.jumpCounter == 0 or self.jumpCounter == 1 then
+ local x = self:getLinearVelocity()
+ self:setLinearVelocity(x,-160)
+ self.jumpTimer = self.jumpTimer - dt
+ end
end
else
- self._jumpevent = false
+ if self._jumping then
+ self._jumping = false
+ self:onJumpStopped()
+ end
end
end
@@ -191,7 +196,7 @@ function Hero:onWalkingStopped ()
end
end
-function Hero:onJump ()
+function Hero:onJumpStarted ()
-- Start salto if last jump
if self.jumpCounter == 1 then
self.salto = true
@@ -214,6 +219,10 @@ function Hero:onJump ()
end
end
+function Hero:onJumpStopped ()
+ self.jumpTimer = Hero.JUMP_TIMER
+end
+
--- Damps linear velocity every frame by applying minor force to body.
function Hero:dampVelocity (dt)
if not self:isWalking() then
diff --git a/not/Player.lua b/not/Player.lua
index 1cf6018..72d64bb 100644
--- a/not/Player.lua
+++ b/not/Player.lua
@@ -60,10 +60,6 @@ end
function Player:controlreleased (set, action, key)
if set ~= self:getControllerSet() then return end
- -- Jumping
- if action == "jump" then
- self.jumpTimer = Hero.JUMP_TIMER
- end
end
return Player