ソースを参照

added broken textures, broken relative landing speed and something else i probably forgot

tags/v0.0.6_dev
Niro 2年前
コミット
030e216bd6
10個のファイルの変更141行の追加51行の削除
  1. +33
    -0
      data/planetdata.lua
  2. +10
    -0
      data/starshipTypes.lua
  3. +8
    -0
      import.lua
  4. +11
    -2
      main.lua
  5. +0
    -1
      src/calc.lua
  6. +1
    -1
      src/class/FX.lua
  7. +15
    -3
      src/class/Planet.lua
  8. +55
    -43
      src/class/Player.lua
  9. バイナリ
      textures/player/orbiter.png
  10. +8
    -1
      textures/textures.lua

+ 33
- 0
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
}
}


+ 10
- 0
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

+ 8
- 0
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"


+ 11
- 2
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(


+ 0
- 1
src/calc.lua ファイルの表示

@@ -48,7 +48,6 @@ function calc.closestObj(target)
end

return minPlanet

end



+ 1
- 1
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

+ 15
- 3
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

+ 55
- 43
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)


バイナリ
textures/player/orbiter.png ファイルの表示

変更前 変更後
幅: 326  |  高さ: 381  |  サイズ: 52 KiB

+ 8
- 1
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

読み込み中…
キャンセル
保存