ships stuff and camera (slightly broken)
This commit is contained in:
@@ -8,25 +8,27 @@ local debug = {
|
|||||||
fuelNumber = "above", -- (white) fuel/max fuel in numerical form
|
fuelNumber = "above", -- (white) fuel/max fuel in numerical form
|
||||||
}
|
}
|
||||||
|
|
||||||
function Debug:drawAbove()
|
function Debug:drawAbove(x, y)
|
||||||
for k,v in pairs(debug) do
|
for k,v in pairs(debug) do
|
||||||
if v == "above" then
|
if v == "above" then
|
||||||
Debug[k]()
|
Debug[k](x, y)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Debug:drawBelow()
|
function Debug:drawBelow(x, y)
|
||||||
for k,v in pairs(debug) do
|
for k,v in pairs(debug) do
|
||||||
if v == "below" then
|
if v == "below" then
|
||||||
Debug[k]()
|
Debug[k](x, y)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Debug:hitRadius()
|
function Debug:hitRadius(x, y)
|
||||||
love.graphics.setLineWidth(1)
|
love.graphics.setLineWidth(1)
|
||||||
love.graphics.setColor(255, 0, 255) -- as much as I love this orange: 188, 128, 90, THIS NEEDS TO STAND OUT
|
love.graphics.setColor(255, 0, 255) -- as much as I love this orange: 188, 128, 90, THIS NEEDS TO STAND OUT
|
||||||
|
-- DOES NOT WORK FOR NO REASON
|
||||||
|
--love.graphics.arc("line", x + player.Ship.x, y + player.Ship.y, player.Ship.Hull.hitRadius, 0, math.pi*2, 20)
|
||||||
love.graphics.arc("line", player.Ship.x, player.Ship.y, player.Ship.Hull.hitRadius, 0, math.pi*2, 20)
|
love.graphics.arc("line", player.Ship.x, player.Ship.y, player.Ship.Hull.hitRadius, 0, math.pi*2, 20)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -37,9 +39,9 @@ function Debug:middleLines()
|
|||||||
love.graphics.line(0, love.graphics.getHeight() / 2, love.graphics.getWidth(), love.graphics.getHeight() / 2)
|
love.graphics.line(0, love.graphics.getHeight() / 2, love.graphics.getWidth(), love.graphics.getHeight() / 2)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Debug:playerCenter()
|
function Debug:playerCenter(x, y)
|
||||||
love.graphics.setColor(255, 100, 100)
|
love.graphics.setColor(255, 100, 100)
|
||||||
love.graphics.arc("fill", player.Ship.x, player.Ship.y, 3, 0, math.pi*2, 20)
|
love.graphics.arc("fill", x + player.Ship.x, y + player.Ship.y, 3, 0, math.pi*2, 20)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Debug:fpsCounter()
|
function Debug:fpsCounter()
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
local class = require "lib.middleclass"
|
local class = require "lib.middleclass"
|
||||||
local Ship = require "Ship"
|
|
||||||
|
|
||||||
local Player = class('Player')
|
local Player = class('Player')
|
||||||
|
|
||||||
|
40
src/Ships/Demo.lua
Normal file
40
src/Ships/Demo.lua
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
local Player = require "Player"
|
||||||
|
local Ship = require "Ship"
|
||||||
|
local Hull = require "Hull"
|
||||||
|
local Shield = require "Shield"
|
||||||
|
local Engine = require "Engine"
|
||||||
|
local Thruster = require "Thruster"
|
||||||
|
|
||||||
|
Ship = Player(Ship(
|
||||||
|
Hull("images/fighter1.png", 1.5, 16, 10000),
|
||||||
|
Shield("images/shieldhit1.png", 1.6),
|
||||||
|
Engine(40000, 0.95, 10, 7.5, 33, 0.93, 0.5),
|
||||||
|
{
|
||||||
|
Thruster(1300, "forward", -8.5, 16.5, {160, 250, 255}, 2.4, 0.7),
|
||||||
|
Thruster(1300, "forward", 8.5, 16.5, {160, 250, 255}, 2.4, 0.7),
|
||||||
|
Thruster(650, "backward", -13, 1.8, {200, 240, 255}, 1.8, 0.8),
|
||||||
|
Thruster(650, "backward", 13, 1.8, {200, 240, 255}, 1.8, 0.8),
|
||||||
|
Thruster(320, "left", 6, -4.4, {220, 230, 250}, 0.6, 1),
|
||||||
|
Thruster(540, "left", 17.5, 5.5, {220, 230, 250}, 1.2, 0.9),
|
||||||
|
Thruster(320, "right", -6, -4.4, {220, 230, 250}, 0.6, 1),
|
||||||
|
Thruster(540, "right", -17.5, 5.5, {220, 230, 250}, 1.2, 0.9),
|
||||||
|
Thruster(90, "rotateleft", 4.4, -16, {250, 200, 200}, 0.4, 1.1),
|
||||||
|
Thruster(110, "rotateleft", -11, 14.3, {255, 230, 230}, 0.6, 1),
|
||||||
|
Thruster(110, "rotateleft", 13, 11, {250, 200, 200}, 0.6, 1),
|
||||||
|
Thruster(90, "rotateright", -4.8, -16, {250, 200, 200}, 0.4, 1.1),
|
||||||
|
Thruster(110, "rotateright", 10.4, 14.3, {255, 230, 230}, 0.6, 1),
|
||||||
|
Thruster(110, "rotateright", -13.6, 11, {250, 200, 200}, 0.6, 1),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x = love.graphics.getWidth() / 2,
|
||||||
|
y = love.graphics.getHeight() / 2,
|
||||||
|
v = {
|
||||||
|
x = 0,
|
||||||
|
y = 0
|
||||||
|
},
|
||||||
|
currentRotation = 0,
|
||||||
|
rotationSpeed = 0
|
||||||
|
}
|
||||||
|
))
|
||||||
|
|
||||||
|
return Ship
|
68
src/main.lua
68
src/main.lua
@@ -7,14 +7,6 @@ console = {
|
|||||||
-- Camera (offset)
|
-- Camera (offset)
|
||||||
local Camera = { x = 0, y = 0 }
|
local Camera = { x = 0, y = 0 }
|
||||||
|
|
||||||
-- Classes
|
|
||||||
local Player = require "Player"
|
|
||||||
local Ship = require "Ship"
|
|
||||||
local Hull = require "Hull"
|
|
||||||
local Shield = require "Shield"
|
|
||||||
local Engine = require "Engine"
|
|
||||||
local Thruster = require "Thruster"
|
|
||||||
|
|
||||||
local Debug = require "Debug"
|
local Debug = require "Debug"
|
||||||
|
|
||||||
-- GLOBALS
|
-- GLOBALS
|
||||||
@@ -25,37 +17,7 @@ Render = {
|
|||||||
hudFont = love.graphics.newFont("fonts/Audimat Mono Regular.ttf", 16),
|
hudFont = love.graphics.newFont("fonts/Audimat Mono Regular.ttf", 16),
|
||||||
}
|
}
|
||||||
|
|
||||||
player = Player(Ship(
|
player = require "Ships.Demo"
|
||||||
Hull("images/fighter1.png", 1.5, 16, 10000),
|
|
||||||
Shield("images/shieldhit1.png", 1.6),
|
|
||||||
Engine(40000, 0.95, 10, 7.5, 33, 0.93, 0.5),
|
|
||||||
{
|
|
||||||
Thruster(1300, "forward", -8.5, 16.5, {160, 250, 255}, 2.4, 0.7),
|
|
||||||
Thruster(1300, "forward", 8.5, 16.5, {160, 250, 255}, 2.4, 0.7),
|
|
||||||
Thruster(650, "backward", -13, 1.8, {200, 240, 255}, 1.8, 0.8),
|
|
||||||
Thruster(650, "backward", 13, 1.8, {200, 240, 255}, 1.8, 0.8),
|
|
||||||
Thruster(320, "left", 6, -4.4, {220, 230, 250}, 0.6, 1),
|
|
||||||
Thruster(540, "left", 17.5, 5.5, {220, 230, 250}, 1.2, 0.9),
|
|
||||||
Thruster(320, "right", -6, -4.4, {220, 230, 250}, 0.6, 1),
|
|
||||||
Thruster(540, "right", -17.5, 5.5, {220, 230, 250}, 1.2, 0.9),
|
|
||||||
Thruster(90, "rotateleft", 4.4, -16, {250, 200, 200}, 0.4, 1.1),
|
|
||||||
Thruster(110, "rotateleft", -11, 14.3, {255, 230, 230}, 0.6, 1),
|
|
||||||
Thruster(110, "rotateleft", 13, 11, {250, 200, 200}, 0.6, 1),
|
|
||||||
Thruster(90, "rotateright", -4.8, -16, {250, 200, 200}, 0.4, 1.1),
|
|
||||||
Thruster(110, "rotateright", 10.4, 14.3, {255, 230, 230}, 0.6, 1),
|
|
||||||
Thruster(110, "rotateright", -13.6, 11, {250, 200, 200}, 0.6, 1),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
x = love.graphics.getWidth() / 2,
|
|
||||||
y = love.graphics.getHeight() / 2,
|
|
||||||
v = {
|
|
||||||
x = 0,
|
|
||||||
y = 0
|
|
||||||
},
|
|
||||||
currentRotation = 0,
|
|
||||||
rotationSpeed = 0
|
|
||||||
}
|
|
||||||
))
|
|
||||||
|
|
||||||
function love.update(dt)
|
function love.update(dt)
|
||||||
-- player rotation input
|
-- player rotation input
|
||||||
@@ -107,15 +69,9 @@ function love.update(dt)
|
|||||||
player.Ship.y = player.Ship.y + player.Ship.v.y * dt
|
player.Ship.y = player.Ship.y + player.Ship.v.y * dt
|
||||||
|
|
||||||
-- Camera position updated
|
-- Camera position updated
|
||||||
local dx = (player.Ship.x - Camera.x - love.graphics.getWidth() / 2) / 10 --love.graphics.getWidth() --/ 2
|
local dx = (player.Ship.x + Camera.x - love.graphics.getWidth() / 2) * math.abs((player.Ship.x + Camera.x - love.graphics.getWidth() / 2) / love.graphics.getWidth() / 5)
|
||||||
local dy = (player.Ship.y - Camera.y - love.graphics.getHeight() / 2) / 10 --love.graphics.getHeight() --/ 2
|
local dy = (player.Ship.y + Camera.y - love.graphics.getHeight() / 2) * math.abs((player.Ship.y + Camera.y - love.graphics.getHeight() / 2) / love.graphics.getHeight() / 5)
|
||||||
--add min/max stuff here
|
--add min/max stuff here?
|
||||||
if dx > love.graphics.getWidth() then
|
|
||||||
dx = love.graphics.getWidth() / 3
|
|
||||||
end
|
|
||||||
if dy > love.graphics.getHeight() then
|
|
||||||
dy = love.graphics.getHeight() / 3
|
|
||||||
end
|
|
||||||
Camera.x = Camera.x - dx
|
Camera.x = Camera.x - dx
|
||||||
Camera.y = Camera.y - dy
|
Camera.y = Camera.y - dy
|
||||||
|
|
||||||
@@ -125,7 +81,7 @@ end
|
|||||||
|
|
||||||
function love.draw()
|
function love.draw()
|
||||||
-- Debug below!
|
-- Debug below!
|
||||||
Debug:drawBelow()
|
Debug:drawBelow(Camera.x, Camera.y)
|
||||||
|
|
||||||
-- Ship draw
|
-- Ship draw
|
||||||
love.graphics.setColor(255, 255, 255)
|
love.graphics.setColor(255, 255, 255)
|
||||||
@@ -143,39 +99,39 @@ function love.draw()
|
|||||||
if love.keyboard.isDown('w') and player.Ship.Hull.fuelAmount > 0 then
|
if love.keyboard.isDown('w') and player.Ship.Hull.fuelAmount > 0 then
|
||||||
for i=1,#player.Ship.Thrusters do
|
for i=1,#player.Ship.Thrusters do
|
||||||
if player.Ship.Thrusters[i].direction == "forward" then
|
if player.Ship.Thrusters[i].direction == "forward" then
|
||||||
player.Ship.Thrusters[i]:draw(player.Ship.x, player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
player.Ship.Thrusters[i]:draw(Camera.x + player.Ship.x, Camera.y + player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif love.keyboard.isDown('s') and player.Ship.Hull.fuelAmount > 0 then
|
elseif love.keyboard.isDown('s') and player.Ship.Hull.fuelAmount > 0 then
|
||||||
for i=1,#player.Ship.Thrusters do
|
for i=1,#player.Ship.Thrusters do
|
||||||
if player.Ship.Thrusters[i].direction == "backward" then
|
if player.Ship.Thrusters[i].direction == "backward" then
|
||||||
player.Ship.Thrusters[i]:draw(player.Ship.x, player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
player.Ship.Thrusters[i]:draw(Camera.x + player.Ship.x, Camera.y + player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if love.keyboard.isDown('j') and player.Ship.Hull.fuelAmount > 0 then
|
if love.keyboard.isDown('j') and player.Ship.Hull.fuelAmount > 0 then
|
||||||
for i=1,#player.Ship.Thrusters do
|
for i=1,#player.Ship.Thrusters do
|
||||||
if player.Ship.Thrusters[i].direction == "left" then
|
if player.Ship.Thrusters[i].direction == "left" then
|
||||||
player.Ship.Thrusters[i]:draw(player.Ship.x, player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
player.Ship.Thrusters[i]:draw(Camera.x + player.Ship.x, Camera.y + player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif love.keyboard.isDown('l') and player.Ship.Hull.fuelAmount > 0 then
|
elseif love.keyboard.isDown('l') and player.Ship.Hull.fuelAmount > 0 then
|
||||||
for i=1,#player.Ship.Thrusters do
|
for i=1,#player.Ship.Thrusters do
|
||||||
if player.Ship.Thrusters[i].direction == "right" then
|
if player.Ship.Thrusters[i].direction == "right" then
|
||||||
player.Ship.Thrusters[i]:draw(player.Ship.x, player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
player.Ship.Thrusters[i]:draw(Camera.x + player.Ship.x, Camera.y + player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if love.keyboard.isDown('q') and player.Ship.Hull.fuelAmount > 0 or love.keyboard.isDown('a') and player.Ship.Hull.fuelAmount > 0 then
|
if love.keyboard.isDown('q') and player.Ship.Hull.fuelAmount > 0 or love.keyboard.isDown('a') and player.Ship.Hull.fuelAmount > 0 then
|
||||||
for i=1,#player.Ship.Thrusters do
|
for i=1,#player.Ship.Thrusters do
|
||||||
if player.Ship.Thrusters[i].direction == "rotateleft" then
|
if player.Ship.Thrusters[i].direction == "rotateleft" then
|
||||||
player.Ship.Thrusters[i]:draw(player.Ship.x, player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
player.Ship.Thrusters[i]:draw(Camera.x + player.Ship.x, Camera.y + player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif love.keyboard.isDown('e') and player.Ship.Hull.fuelAmount > 0 or love.keyboard.isDown('d') and player.Ship.Hull.fuelAmount > 0 then
|
elseif love.keyboard.isDown('e') and player.Ship.Hull.fuelAmount > 0 or love.keyboard.isDown('d') and player.Ship.Hull.fuelAmount > 0 then
|
||||||
for i=1,#player.Ship.Thrusters do
|
for i=1,#player.Ship.Thrusters do
|
||||||
if player.Ship.Thrusters[i].direction == "rotateright" then
|
if player.Ship.Thrusters[i].direction == "rotateright" then
|
||||||
player.Ship.Thrusters[i]:draw(player.Ship.x, player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
player.Ship.Thrusters[i]:draw(Camera.x + player.Ship.x, Camera.y + player.Ship.y, player.Ship.currentRotation - (player.Ship.currentRotation % player.Ship.Engine.degreeLock))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -190,5 +146,5 @@ function love.draw()
|
|||||||
love.graphics.rectangle("fill", 4, love.graphics.getHeight() - 12, player.Ship.Hull.fuelAmount / player.Ship.Hull.fuelCapacity * 123, 8) --max width is 123
|
love.graphics.rectangle("fill", 4, love.graphics.getHeight() - 12, player.Ship.Hull.fuelAmount / player.Ship.Hull.fuelCapacity * 123, 8) --max width is 123
|
||||||
|
|
||||||
-- Debug above!
|
-- Debug above!
|
||||||
Debug:drawAbove()
|
Debug:drawAbove(Camera.x, Camera.y)
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user