Browse Source

Added rotatable engine controls

tags/v0.0.6_dev
Madi 2 years ago
parent
commit
9918992fbd
5 changed files with 34 additions and 6 deletions
  1. +4
    -1
      data/controls.lua
  2. +2
    -1
      data/info.lua
  3. +1
    -1
      main.lua
  4. +1
    -1
      src/calc.lua
  5. +26
    -2
      src/class/Player.lua

+ 4
- 1
data/controls.lua View File

@@ -18,7 +18,10 @@ controls = {
up = "w",
down = "s",
left = "a",
right = "d"
right = "d",
engine = "space",
rotleft = "q",
rotright = "e"
},

-- Time Warp Controls:


+ 2
- 1
data/info.lua View File

@@ -3,7 +3,8 @@ info = {}
info.name = "Questionable Örbital Mechanics"
info.version = "0.0.2_dev"
info.authors = {
"NiroUwU"
"NiroUwU",
"Madiwka4"
}

return info

+ 1
- 1
main.lua View File

@@ -8,7 +8,7 @@ function love.load()
love.window.setTitle(info.name.." - v"..info.version)
width, height = love.graphics.getDimensions()
cam = Camera()
zoomlevel = 0.005
zoomlevel = 0.5





+ 1
- 1
src/calc.lua View File

@@ -3,7 +3,7 @@ calc = {}

-- G-Constant
calc.G = 6.67e-11 -- TWEAKABLE FOR LATER DEPENDING ON SCALE!!!!!!!!!!!
calc.pi = 3.14
-- Development debugging/logging thing
function calc.debug(text)
if calc.isDebug then


+ 26
- 2
src/class/Player.lua View File

@@ -30,6 +30,9 @@ function Player:init(tempX, tempY)

-- Mass:
self.m = 10

-- Rotation:
self.angle = calc.pi/2
end


@@ -98,6 +101,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()
@@ -189,7 +207,11 @@ function Player:update(dt)
self:updatePosition()
end
self:throttleControls()
if self.angle > calc.pi*2 then
self.angle = 0
elseif self.angle < 0 then
self.angle = calc.pi*2
end
self.coolDown = self.coolDown - 1
end

@@ -207,10 +229,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*math.cos(self.angle), y-dist*math.sin(self.angle), 3, 20)
end

Loading…
Cancel
Save