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(
49 self.position.x-self.width/2,
50 self.position.y-self.height/2,
55 -- add current position
58 table.remove(self.path)
59 table.remove(self.path)
62 function Player:recordPosition()
63 table.insert(self.path, self.position.x)
64 table.insert(self.path, self.position.y)
67 function Player:multiple_keys_are_pressed()
69 for key,_ in pairs(self.keys) do
70 if love.keyboard.isDown(key) then
77 function Player:update(dt)
78 if not self:multiple_keys_are_pressed() then
79 for key, name in pairs(self.keys) do
80 if love.keyboard.isDown(key)
81 and self.vector ~= self.vectors[name]
82 and (self.vector + self.vectors[name]):length() > 0
84 self.vector = self.vectors[name]
90 self.position = self.position + self.vector * self.acceleration * dt