X-Git-Url: http://git.purplebirdman.com/lightcycles-love.git/blobdiff_plain/d1da65a81c9bca386ce609501019042d8803ef2e..8f054564538fd6e9b63f6d84796710232ba31908:/player.lua diff --git a/player.lua b/player.lua index 0e707f8..ed4f210 100644 --- a/player.lua +++ b/player.lua @@ -1,7 +1,7 @@ require 'vec2' Player = {} -Player.name = 'player' +Player.name = 'none' Player.color = {255, 0, 0} Player.width = 5 Player.height = 5 @@ -30,6 +30,10 @@ function Player:new(o) return o end +function Player:__tostring() + return self.name +end + function Player:drawPath() if #self.path >= 4 then love.graphics.setLineWidth(2) @@ -54,15 +58,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