From 8a79b873c95bb155a70a460efd460dfc35b493bb Mon Sep 17 00:00:00 2001 From: Aki Date: Tue, 17 May 2016 21:33:42 +0200 Subject: createEffect relative to player --- player.lua | 17 ++++++++++++++--- world.lua | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/player.lua b/player.lua index 327a29b..fd42260 100644 --- a/player.lua +++ b/player.lua @@ -138,7 +138,7 @@ function Player:keypressed (key) -- Jumping if key == self.key_jump then if not self.inAir then - self.world:createEffect("jump", self.body:getX()-12, self.body:getY()-15) + self:createEffect("jump") self.jumpactive = true if (self.current == self.animations.attack) or (self.current == self.animations.attack_up) or @@ -146,7 +146,7 @@ function Player:keypressed (key) self:changeAnimation("idle") end elseif self.jumpdouble then - self.world:createEffect("doublejump", self.body:getX()-12, self.body:getY()-15) + self:createEffect("doublejump") self.jumpactive = true self.jumpdouble = false end @@ -219,6 +219,17 @@ function Player:changeAnimation(animation) self.current = self.animations[animation] end +-- Spawn `Effect` relative to `Player` +function Player:createEffect(name) + if name == "trail" or name == "hit" then + -- 16px effect: -4 -7 + self.world:createEffect(name, self.body:getX()-4, self.body:getY()-7) + elseif name ~= nil then + -- 24px effect: -12 -15 + self.world:createEffect(name, self.body:getX()-12, self.body:getY()-15) + end +end + -- Punch of `Player` -- REWORK NEEDED Issue #8 function Player:hit (horizontal, vertical) @@ -256,7 +267,7 @@ end -- Taking damage of `Player` by successful hit test function Player:damage (horizontal, vertical) - self.world:createEffect("hit", self.body:getX()-4, self.body:getY()-7) + self:createEffect("hit") self.body:applyLinearImpulse((34+12*self.combo)*horizontal, (50+10*self.combo)*vertical + 15) self:changeAnimation("damage") end \ No newline at end of file diff --git a/world.lua b/world.lua index 4b0beeb..49848d9 100644 --- a/world.lua +++ b/world.lua @@ -177,7 +177,7 @@ function World.beginContact(a, b, coll) print(b:getUserData().name .. " is not in air") b:getUserData().inAir = false b:getUserData().jumpdouble = true - b:getUserData().world:createEffect("land", b:getBody():getX()-12, b:getBody():getY()-15) + b:getUserData():createEffect("land") end end -- cgit v1.1