diff --git a/data/planetdata.lua b/data/planetdata.lua index 60421da..16b29d5 100755 --- a/data/planetdata.lua +++ b/data/planetdata.lua @@ -1,14 +1,24 @@ planetdata = { { x = 0, y = 0, +<<<<<<< Updated upstream r = 500000, m = 1e9, +======= +<<<<<<< Updated upstream + r = 500000, m = 5e15, +>>>>>>> Stashed changes xSpeed = 0, ySpeed = 0, +======= + r = 500000, m = 1e12, + xSpeed = 0, ySpeed = 100, +>>>>>>> Stashed changes name = "Testos", colour = {42, 04, 20}, parent = "star" }, { x = 2000000, y = 0, +<<<<<<< Updated upstream r = 100000, m = 4e10, xSpeed = 0, ySpeed = 50, name = "Deez", @@ -22,6 +32,29 @@ planetdata = { name = "Ligos", colour = {10, 50, 20}, parent = 2 +======= +<<<<<<< Updated upstream + r = 40000, m = 4e7, + xSpeed = 0, ySpeed = 12000, + name = "Deez", + colour = {50, 50, 50}, + parent = 1 +======= + r = 100000, m = 4e9, + xSpeed = 0, ySpeed = 175, + name = "Deez", + colour = {50, 50, 50}, + parent = 1 + }, + { + x = 2200000, y = 0, + r = 10000, m = 1e4, + xSpeed = 0, ySpeed = 35, + name = "Ligos", + colour = {10, 50, 20}, + parent = 2 +>>>>>>> Stashed changes +>>>>>>> Stashed changes } } diff --git a/data/starshipTypes.lua b/data/starshipTypes.lua index e7ee308..c98299b 100755 --- a/data/starshipTypes.lua +++ b/data/starshipTypes.lua @@ -4,16 +4,26 @@ starshipTypes = { name = "Classic Orbiter", description = "Dolor fugiat irure sit aliqua labore. Culpa voluptate occaecat anim exercitation proident sint ex dolor. Officia in labore sint Lorem ea. Ad minim aliqua aliqua non commodo qui in ea sit excepteur excepteur qui.", impacttolerance = 0.5, +<<<<<<< Updated upstream mass = 10, speed = 0.05, specials = {"orbitSync"} --TEXTURE HERE? +======= + mass = 100000, -- idk, feels better but holy fuck thats a thicc ass boi xD + speed = 0.05, + specials = {"orbitSync"}, + texture = texture.player.orbiter +>>>>>>> Stashed changes } } return starshipTypes +<<<<<<< Updated upstream +======= +>>>>>>> Stashed changes diff --git a/import.lua b/import.lua index 7606e86..cf1f28e 100755 --- a/import.lua +++ b/import.lua @@ -5,10 +5,18 @@ require "libraries" -- General Data: info = require "data/info" +texture = require "textures/textures" controls = require "data/controls" settings = require "data/settings" +<<<<<<< Updated upstream texture = require "textures/textures" +<<<<<<< Updated upstream +starshipTypes = require "data/starshipTypes" +======= +======= starshipTypes = require "data/starshipTypes" +>>>>>>> Stashed changes +>>>>>>> Stashed changes -- Game Source: calc = require "src/calc" diff --git a/main.lua b/main.lua index 1701854..63561e4 100755 --- a/main.lua +++ b/main.lua @@ -6,6 +6,7 @@ calc.isDebug = true function love.load() -- Declaration: love.window.setTitle(info.name.." - v"..info.version) + --love.graphics.setDefaultFilter("nearest", "nearest") width, height = love.graphics.getDimensions() -- Camera: @@ -23,7 +24,16 @@ function love.load() loadPlanets() local spawnPlanet = planet[1] +<<<<<<< Updated upstream player = Player(spawnPlanet.x, spawnPlanet.y-spawnPlanet.r-1, "orbiter") +======= +<<<<<<< Updated upstream + player = Player(spawnPlanet.x, spawnPlanet.y-spawnPlanet.r-1) +======= + player = Player(spawnPlanet.x, spawnPlanet.y-spawnPlanet.r-1, "orbiter") + player.xSpeed, player.ySpeed = spawnPlanet.xSpeed, spawnPlanet.ySpeed +>>>>>>> Stashed changes +>>>>>>> Stashed changes gui = Gui(1) effects = {} end @@ -33,8 +43,7 @@ end function loadPlanets() debug("Planets in planet table: "..#planetdata) - for i=1, #planetdata do - local p = planetdata[i] + for i, p in ipairs(planetdata) do debug(p.name.." is loading") table.insert(planet, i, Planet( diff --git a/src/calc.lua b/src/calc.lua index 8c67cb5..0581be6 100755 --- a/src/calc.lua +++ b/src/calc.lua @@ -48,7 +48,6 @@ function calc.closestObj(target) end return minPlanet - end diff --git a/src/class/FX.lua b/src/class/FX.lua index 73fe3f7..2e7fa26 100755 --- a/src/class/FX.lua +++ b/src/class/FX.lua @@ -29,7 +29,7 @@ end function FX:draw() - debug("drawing flash") + --debug("drawing flash") if self.type == "flash" then self:flash() end diff --git a/src/class/Planet.lua b/src/class/Planet.lua index 6f92277..984e83b 100755 --- a/src/class/Planet.lua +++ b/src/class/Planet.lua @@ -33,8 +33,6 @@ function Planet:init(tempX, tempY, tempR, tempM, tempXSpeed, tempYSpeed, tempNam self.parent = planet[tempP] table.insert(planet[tempP].children, self) end - - end @@ -42,10 +40,25 @@ end -- FUNCTIONS +function Planet:getSpeed() + return math.abs(self.xSpeed) + math.abs(self.ySpeed) +end + function Planet:updatePosition() +<<<<<<< Updated upstream self.x = self.x + self.xSpeed + self.orbitalX self.y = self.y + self.ySpeed + self.orbitalY +======= +<<<<<<< Updated upstream + self.x = self.x + self.xSpeed + self.y = self.y + self.ySpeed +>>>>>>> Stashed changes debug("Updating position of planet " .. self.name .. ": " .. self.x .. " " .. self.y) +======= + self.x = self.x + self.xSpeed + self.orbitalX + self.y = self.y + self.ySpeed + self.orbitalY + --debug("Updating position of planet " .. self.name .. ": " .. self.x .. " " .. self.y) +>>>>>>> Stashed changes end function Planet:attract(dt) --Planet doing the attracting, divided in two parts: @@ -93,5 +106,4 @@ function Planet:draw() local col = self.colour love.graphics.setColor(calc.c(col[1]), calc.c(col[2]), calc.c(col[3])) love.graphics.circle("fill", self.x, self.y, self.r) - end \ No newline at end of file diff --git a/src/class/Player.lua b/src/class/Player.lua index bdb764a..20538b5 100755 --- a/src/class/Player.lua +++ b/src/class/Player.lua @@ -20,6 +20,7 @@ function Player:init(tempX, tempY, tempT) -- Landings: self.impacttolerance = starshipTypes[tempT].impacttolerance self.landingspeed = 0 + self.landedOn = nil -- Mass: self.m = starshipTypes[tempT].mass @@ -29,8 +30,17 @@ function Player:init(tempX, tempY, tempT) -- Status: self.exploding = false +<<<<<<< Updated upstream --TEXTURE HERE? +======= +<<<<<<< Updated upstream +======= + + --TEXTURE HERE? + self.texture = love.graphics.newImage(starshipTypes[tempT].texture) +>>>>>>> Stashed changes +>>>>>>> Stashed changes end @@ -78,44 +88,39 @@ function Player:flightControls() -- Anti-clipping feature local closestPla = calc.closestObj(player) - -- Movement: local speedChange = self.speed * self.throttle -- Directional Thrust: if love.keyboard.isDown(controls.flight.thrust.up)then if (calc.distance(closestPla.x, closestPla.y, self.x, self.y) > calc.distance(closestPla.x, closestPla.y, self.x, self.y-10) and self:isLanded()) then - debug("Flying into a planet!") + --debug("Flying into a planet!") else self.ySpeed = self.ySpeed - speedChange - debug("Player control: up") end end if love.keyboard.isDown(controls.flight.thrust.down) then if (calc.distance(closestPla.x, closestPla.y, self.x, self.y) > calc.distance(closestPla.x, closestPla.y, self.x, self.y+10) and self:isLanded()) then - debug("Flying into a planet!") + --debug("Flying into a planet!") else self.ySpeed = self.ySpeed + speedChange - debug("Player control: down") end end if love.keyboard.isDown(controls.flight.thrust.left) then if (calc.distance(closestPla.x, closestPla.y, self.x, self.y) > calc.distance(closestPla.x, closestPla.y, self.x-10, self.y) and self:isLanded()) then - debug("Flying into a planet!") + --debug("Flying into a planet!") else self.xSpeed = self.xSpeed - speedChange - debug("Player control: left") end end if love.keyboard.isDown(controls.flight.thrust.right) then if (calc.distance(closestPla.x, closestPla.y, self.x, self.y) > calc.distance(closestPla.x, closestPla.y, self.x+10, self.y) and self:isLanded()) then - debug("Flying into a planet!") + --debug("Flying into a planet!") else self.xSpeed = self.xSpeed + speedChange - debug("Player control: right") end end @@ -126,7 +131,7 @@ function Player:flightControls() debug("Flying into a planet!") else self.xSpeed = self.xSpeed + math.cos(self.angle) * speedChange*2 - debug("Ship thrusters X: " .. math.cos(self.angle) .. " " .. math.sin(self.angle) .. " " .. self.angle) + --debug("Ship thrusters X: " .. math.cos(self.angle) .. " " .. math.sin(self.angle) .. " " .. self.angle) self.ySpeed = self.ySpeed - math.sin(self.angle) * speedChange*2 end end @@ -141,19 +146,19 @@ function Player:flightControls() -- Reset: if love.keyboard.isDown(controls.flight.reset) then self:reset() - debug("Player control: reset") end end -function Player:getSpeed() - local x, y = self.xSpeed, self.ySpeed - if x < 0 then - x = -x - end - if y < 0 then - y = -y - end - return x+y +function Player:getSpeed() -- absolute speed + return math.abs(self.xSpeed) + math.abs(self.ySpeed) +end + +function Player:getSpeedTo(obj) -- relative speed to an object + return math.abs(self:getSpeed() - obj:getSpeed()) +end + +function Player:getOrbitHeight(obj) -- gets the height of the orbit (above surface) + return calc.distance(self.x, self.y, obj.x, obj.y)-obj.r end function Player:hasCrashed() --Testing function, see if a player is inside a planet @@ -168,15 +173,19 @@ end function Player:isLanded() local landed = false - for i=1, #planet do - local pla = planet[i] - if calc.distance(self.x, self.y, pla.x, pla.y) <= pla.r then + for i, p in ipairs(planet) do + if self:getOrbitHeight(p) <= 0 then landed = true + self.landedOn = p + debug("Player touched down on: "..p.name) end end -- Save Landing Speed: if landed then - self.landingspeed = self:getSpeed() + local player = math.abs(self:getSpeed()) + local planet = math.abs(self.landedOn:getSpeed()) + + self.landingspeed = math.abs(player-planet) debug("Landing speed: "..self.landingspeed) end self:hasCrashed() @@ -186,7 +195,8 @@ end function Player:gravity() if self:isLanded() then -- Player is landed: - self.xSpeed, self.ySpeed = 0, 0 + local p = self.landedOn + self.xSpeed, self.ySpeed = math.abs(p.xSpeed), math.abs(p.ySpeed) end end @@ -195,13 +205,23 @@ function Player:updatePosition() self.y = self.y + self.ySpeed end +function Player:drawTexture(x, y, r) + -- Texture offset and size + local t = {s = 50} + t.x = x - love.graphics.getPixelWidth(self.texture)/2 -- ????????????????????????????????? + t.y = y - love.graphics.getPixelHeight(self.texture)/2 + + -- Draw Texture + love.graphics.setColor(1, 1, 1) + love.graphics.draw(self.texture, t.x, t.y, r) + debug("Angle: "..self.angle) +end + -- MAIN function Player:update(dt) - --debug(self.warpspeed) - if self.angle > calc.pi*2 then self.angle = 0 elseif self.angle < 0 then @@ -217,23 +237,15 @@ end function Player:draw() local x, y = self.x, self.y local dist = 10 - -- Funky arrow type form - local vertices = { - -- Top - x, y-dist, - -- Left Bottom - x-dist, y+dist, - -- Middle Down - x, y+dist/2, - -- Right Bottom - x+dist, y+dist - } - if not self.exploding then - 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) + self:drawTexture(x, y, calc.pi/2 - self.angle) + + if not self.exploding then + if calc.isDebug then + -- Debugging Draw of actual Player Position + love.graphics.setColor(1, 0, 0) + love.graphics.circle("fill", x, y, 5, 20) + end -- 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) diff --git a/textures/player/orbiter.png b/textures/player/orbiter.png new file mode 100755 index 0000000..0251bb6 Binary files /dev/null and b/textures/player/orbiter.png differ diff --git a/textures/textures.lua b/textures/textures.lua index cc103fc..c80ecf3 100755 --- a/textures/textures.lua +++ b/textures/textures.lua @@ -1,3 +1,10 @@ -texture = {} +texture = { + player = { + orbiter = "textures/player/orbiter.png" + }, + planet = { + -- here will go planet textures in future + } +} return texture \ No newline at end of file