From: Clifton James Palmer Date: Sat, 8 Dec 2018 14:49:32 +0000 (-0600) Subject: Prevent player from switching vector quickly by holding multiple keys X-Git-Url: http://git.purplebirdman.com/lightcycles-love.git/commitdiff_plain/0c014b54ddd52d3ca1ed007a7c2562dfa9514c99 Prevent player from switching vector quickly by holding multiple keys --- diff --git a/player.lua b/player.lua index 0e707f8..387b54f 100644 --- a/player.lua +++ b/player.lua @@ -54,15 +54,27 @@ function Player:recordPosition() table.insert(self.path, self.position.y + self.height/2) end +function Player:multiple_keys_are_pressed() + local count = 0 + for key,_ in pairs(self.keys) do + if love.keyboard.isDown(key) then + count = count + 1 + end + end + return count > 1 +end + function Player:update(dt) - for key, name in pairs(self.keys) do - if love.keyboard.isDown(key) - and self.vector ~= self.vectors[name] - and (self.vector + self.vectors[name]):length() > 0 - then - self.vector = self.vectors[name] - self:recordPosition() - break + if not self:multiple_keys_are_pressed() then + for key, name in pairs(self.keys) do + if love.keyboard.isDown(key) + and self.vector ~= self.vectors[name] + and (self.vector + self.vectors[name]):length() > 0 + then + self.vector = self.vectors[name] + self:recordPosition() + break + end end end self.position = self.position + self.vector * self.acceleration * dt