5 Player.color = {255, 0, 0}
8 Player.acceleration = 100
9 Player.position = vec2:new(0, 0)
10 Player.vector = vec2:new(0, 0)
14 down = vec2:new(0, 1),
15 left = vec2:new(-1, 0),
16 right = vec2:new(1, 0),
25 function Player:new(o)
33 function Player:__tostring()
37 function Player:drawPath()
38 if #self.path >= 4 then
39 love.graphics.setLineWidth(2)
40 love.graphics.setColor(self.color)
41 love.graphics.line(self.path)
45 function Player:draw()
46 love.graphics.setColor(self.color)
47 love.graphics.rectangle('fill', self.position.x, self.position.y, self.width, self.height)
49 -- add current position
52 table.remove(self.path)
53 table.remove(self.path)
56 function Player:recordPosition()
57 table.insert(self.path, self.position.x + self.width/2)
58 table.insert(self.path, self.position.y + self.height/2)
61 function Player:multiple_keys_are_pressed()
63 for key,_ in pairs(self.keys) do
64 if love.keyboard.isDown(key) then
71 function Player:update(dt)
72 if not self:multiple_keys_are_pressed() then
73 for key, name in pairs(self.keys) do
74 if love.keyboard.isDown(key)
75 and self.vector ~= self.vectors[name]
76 and (self.vector + self.vectors[name]):length() > 0
78 self.vector = self.vectors[name]
84 self.position = self.position + self.vector * self.acceleration * dt