|
|
@@ -23,6 +23,9 @@ function Player:init(tempX, tempY) |
|
|
|
|
|
|
|
-- Mass: |
|
|
|
self.m = 10 |
|
|
|
|
|
|
|
-- Rotation: |
|
|
|
self.angle = calc.pi/2 |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
@@ -91,6 +94,21 @@ function Player:flightControls() |
|
|
|
debug("Player control: right") |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
-- Main Engine controls: |
|
|
|
if love.keyboard.isDown(controls.flight.thrust.engine) then |
|
|
|
self.xSpeed = self.xSpeed + math.cos(self.angle) * speedChange |
|
|
|
debug("Ship thrusters X: " .. math.cos(self.angle) .. " " .. math.sin(self.angle) .. " " .. self.angle) |
|
|
|
self.ySpeed = self.ySpeed - math.sin(self.angle) * speedChange |
|
|
|
end |
|
|
|
if love.keyboard.isDown(controls.flight.thrust.rotleft) then |
|
|
|
self.angle = self.angle + 1/love.timer.getFPS() |
|
|
|
end |
|
|
|
if love.keyboard.isDown(controls.flight.thrust.rotright) then |
|
|
|
self.angle = self.angle - 1/love.timer.getFPS() |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
-- Reset: |
|
|
|
if love.keyboard.isDown(controls.flight.reset) then |
|
|
|
self:reset() |
|
|
@@ -144,6 +162,12 @@ end |
|
|
|
|
|
|
|
function Player:update(dt) |
|
|
|
--debug(self.warpspeed) |
|
|
|
|
|
|
|
if self.angle > calc.pi*2 then |
|
|
|
self.angle = 0 |
|
|
|
elseif self.angle < 0 then |
|
|
|
self.angle = calc.pi*2 |
|
|
|
end |
|
|
|
self:gravity() |
|
|
|
self:flightControls() |
|
|
|
self:updatePosition() |
|
|
@@ -163,10 +187,12 @@ function Player:draw() |
|
|
|
-- Right Bottom |
|
|
|
x+dist, y+dist |
|
|
|
} |
|
|
|
|
|
|
|
love.graphics.setColor(0.5, 0.5, 0.7) |
|
|
|
love.graphics.polygon("fill", vertices) |
|
|
|
|
|
|
|
love.graphics.setColor(1, 0, 0) |
|
|
|
love.graphics.circle("fill", x, y, 5, 20) |
|
|
|
|
|
|
|
-- Directional Circle (temporary until actual rotatable ship texture is made) |
|
|
|
love.graphics.circle("fill", x+dist*(1/zoomlevel*2)*math.cos(self.angle), y-dist*(1/zoomlevel*2)*math.sin(self.angle), 1/zoomlevel*2) |
|
|
|
end |