Skip to content

Instantly share code, notes, and snippets.

@ultimateprogramer
Last active January 20, 2022 18:42
Show Gist options
  • Save ultimateprogramer/2d53001518035deb98f9df2138c40284 to your computer and use it in GitHub Desktop.
Save ultimateprogramer/2d53001518035deb98f9df2138c40284 to your computer and use it in GitHub Desktop.
Linear Movement along a direction set by an angle
Movement = Class{}
function Movement:init(x, y, angle, speed)
self.position = vector(x, y)
self.angle = angle
self.speed = speed
self.velocity = self.speed * vector(math.cos(self.angle), math.sin(self.angle))
end
function Movement:update(dt)
self.position = self.position + self.velocity * dt
end
function Movement:getCoords()
return self.position:unpack()
end
function love.load()
x, y = 100,100
angle = 0
image = love.graphics.newImage('image.png')
speed = 50
rotspeed = 1
end
function love.draw()
love.graphics.draw(image,x,y,angle)
end
function love.update(dt)
if love.keyboard.isDown('up') then
x = x + math.cos(angle) * speed * dt
y = y + math.sin(angle) * speed * dt
end
if love.keyboard.isDown('down') then
x = x - math.cos(angle) * speed * dt
y = y - math.sin(angle) * speed * dt
end
if love.keyboard.isDown('left') then
angle = angle - rotspeed * dt
end
if love.keyboard.isDown('right') then
angle = angle + rotspeed * dt
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment