浏览代码

texture changes, minor tweaks

tags/v0.0.6_dev
Niro 3 年前
父节点
当前提交
00b96ce5f6
共有 13 个文件被更改,包括 127 次插入51 次删除
  1. +1
    -1
      data/info.lua
  2. +3
    -2
      data/settings.lua
  3. +4
    -4
      data/starshipTypes.lua
  4. +1
    -1
      import.lua
  5. +42
    -16
      main.lua
  6. +58
    -23
      src/class/Player.lua
  7. 二进制
      textures/player/orbiter.png
  8. 二进制
      textures/player/orbiter/fullThrust.png
  9. 二进制
      textures/player/orbiter/lowThrust.png
  10. 二进制
      textures/player/orbiter/orbiter.png
  11. +18
    -4
      textures/textures.lua
  12. 二进制
      textures/ui/arrow_grey.png
  13. 二进制
      textures/ui/arrow_red.png

+ 1
- 1
data/info.lua 查看文件

@@ -2,7 +2,7 @@ info = {}


info.name = "Questionable Örbital Mechanics" info.name = "Questionable Örbital Mechanics"
info.title = info.name info.title = info.name
info.version = "0.0.2_dev"
info.version = "0.0.6_dev"
info.authors = { info.authors = {
"NiroUwU", "NiroUwU",
"Madiwka4" "Madiwka4"


+ 3
- 2
data/settings.lua 查看文件

@@ -3,11 +3,12 @@ settings = {
min = 0.0001, min = 0.0001,
max = 4, max = 4,
step = 0.05, step = 0.05,
reset = 0.0001
reset = 0.2,
arrowAppear = 0.03
}, },
warp = { warp = {
min = 1, min = 1,
max = 10,
max = 25,
step = 1, step = 1,


cooldown = 10 cooldown = 10


+ 4
- 4
data/starshipTypes.lua 查看文件

@@ -3,11 +3,11 @@ starshipTypes = {
orbiter = { orbiter = {
name = "Classic Orbiter", 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.", 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.75,
mass = 100000, -- idk, feels better but holy fuck thats a thicc ass boi xD
speed = 0.05,
impacttolerance = 3,
mass = 1000000, -- idk, feels better but holy fuck thats a thicc ass boi xD
speed = 0.01,
specials = {"orbitSync"}, specials = {"orbitSync"},
texture = texture.player.orbiter
textures = texture.player.orbiter
} }
} }




+ 1
- 1
import.lua 查看文件

@@ -4,8 +4,8 @@
require "libraries" require "libraries"


-- General Data: -- General Data:
info = require "data/info"
texture = require "textures/textures" texture = require "textures/textures"
info = require "data/info"
controls = require "data/controls" controls = require "data/controls"
settings = require "data/settings" settings = require "data/settings"
starshipTypes = require "data/starshipTypes" starshipTypes = require "data/starshipTypes"


+ 42
- 16
main.lua 查看文件

@@ -19,8 +19,8 @@ function love.load()
-- Menubuttons: -- Menubuttons:
menubutton = { menubutton = {
menu = { menu = {
startGame = Menubutton(20, 100, 200, 50, gamestate.game, nil, "Start Game", {255, 255, 255}, {57, 45, 66}),
quitGame = Menubutton(30, 170, 180, 40, gamestate.quit, nil, "Quit Game", {255, 255, 255}, {57, 45, 66})
Menubutton(20, 100, 200, 50, gamestate.game, nil, "Start Game", {255, 255, 255}, {57, 45, 66}),
Menubutton(30, 170, 180, 40, gamestate.quit, nil, "Quit Game", {255, 255, 255}, {57, 45, 66})
}, },
game = { game = {
-- Pause button or something here in future? -- Pause button or something here in future?
@@ -83,6 +83,9 @@ function drawPlanets()
end end
end end



-- Effects

function drawEffects() function drawEffects()
for i=1, #effects do for i=1, #effects do
effects[i]:draw() effects[i]:draw()
@@ -97,8 +100,6 @@ end


-- Camera -- Camera




function cameraControls() function cameraControls()
local step = settings.zoom.step local step = settings.zoom.step


@@ -130,6 +131,9 @@ function cameraControls()
cam:zoomTo(zoomlevel) cam:zoomTo(zoomlevel)
end end



-- Time Warp

function timewarpControls() function timewarpControls()
-- Time Warp Toggle Cooldowns: -- Time Warp Toggle Cooldowns:
local maxCooldown = settings.warp.cooldown local maxCooldown = settings.warp.cooldown
@@ -167,6 +171,35 @@ function timewarpControls()
end end




-- Menubuttons

function menubuttonUpdate()
if GAMESTATE == gamestate.menu then
for i, button in ipairs(menubutton.menu) do
button:update()
end

elseif GAMESTATE == gamestate.game then
for i, button in ipairs(menubutton.game) do
button:update()
end

end
end

function menubuttonDraw()
if GAMESTATE == gamestate.menu then
for i, button in ipairs(menubutton.menu) do
button:draw()
end

elseif GAMESTATE == gamestate.game then
for i, button in ipairs(menubutton.game) do
button:draw()
end
end
end



-- MAIN -- MAIN


@@ -176,8 +209,6 @@ function love.update(dt)
love.event.quit(0) love.event.quit(0)


elseif GAMESTATE == gamestate.menu then elseif GAMESTATE == gamestate.menu then
menubutton.menu.startGame:update(dt)
menubutton.menu.quitGame:update(dt)


elseif GAMESTATE == gamestate.game then elseif GAMESTATE == gamestate.game then
-- Game Objects: -- Game Objects:
@@ -195,7 +226,10 @@ function love.update(dt)
cam:lookAt(player.x, player.y) cam:lookAt(player.x, player.y)
cameraControls() cameraControls()
--debug(player.x .. " " .. player.y) --debug(player.x .. " " .. player.y)

end end
menubuttonUpdate()
end end


function love.draw() function love.draw()
@@ -205,25 +239,17 @@ function love.draw()
love.graphics.setFont(font.gametitle) love.graphics.setFont(font.gametitle)
love.graphics.printf(info.title, 20, 20, width, "left") love.graphics.printf(info.title, 20, 20, width, "left")


-- Buttons:
menubutton.menu.startGame:draw()
menubutton.menu.quitGame:draw()

elseif GAMESTATE == gamestate.game then elseif GAMESTATE == gamestate.game then
cam:attach() cam:attach()
-- Game Objects: -- Game Objects:
drawPlanets() drawPlanets()
drawEffects() drawEffects()
player:draw() player:draw()

-- Camera Zoom Player Location Indicator: OVERWORK SOON PLS KAY; IT UGLY
if zoomlevel < 0.3 then
love.graphics.setColor(1, 1, 1, 0.2)
love.graphics.circle("fill", player.x, player.y, (1/zoomlevel)*10)
end
cam:detach() cam:detach()


-- Gui: -- Gui:
player:drawPositionIndicator()
gui:draw() gui:draw()
end end
menubuttonDraw()
end end

+ 58
- 23
src/class/Player.lua 查看文件

@@ -9,6 +9,7 @@ function Player:init(tempX, tempY, tempT)
self.xStart = tempX self.xStart = tempX
self.yStart = tempY self.yStart = tempY


-- Speed of Parent:
self.orbitalX = 0 self.orbitalX = 0
self.orbitalY = 0 self.orbitalY = 0


@@ -32,19 +33,26 @@ function Player:init(tempX, tempY, tempT)
self.angle = calc.pi/2 self.angle = calc.pi/2


-- Status: -- Status:
self.isAccelerating = false
self.exploding = false self.exploding = false
self.inRange = nil self.inRange = nil


--TEXTURE HERE?
self.texture = love.graphics.newImage(starshipTypes[tempT].texture)
self.width = self.texture:getWidth()
self.height = self.texture:getHeight()
-- Spacecraft Textures:
self.texture = {
ship = starshipTypes[tempT].textures.ship,
fullThrust = starshipTypes[tempT].textures.fullThrust,
lowThrust = starshipTypes[tempT].textures.lowThrust
}
self.width = self.texture.ship:getWidth()
self.height = self.texture.ship:getHeight()
end end






-- FUNCTIONS -- FUNCTIONS


-- Player Controls:

function Player:throttleControls() function Player:throttleControls()
local change = 0.01 local change = 0.01
local max, min = 1, 0 local max, min = 1, 0
@@ -129,9 +137,11 @@ function Player:flightControls()
if (calc.distance(closestPla.x, closestPla.y, self.x, self.y) > calc.distance(closestPla.x, closestPla.y, self.x+self.xSpeed + math.cos(self.angle) * speedChange*2, self.y+self.ySpeed - math.sin(self.angle) * speedChange*2) and self:isLanded()) then --Holy moly this is long if (calc.distance(closestPla.x, closestPla.y, self.x, self.y) > calc.distance(closestPla.x, closestPla.y, self.x+self.xSpeed + math.cos(self.angle) * speedChange*2, self.y+self.ySpeed - math.sin(self.angle) * speedChange*2) and self:isLanded()) then --Holy moly this is long
debug("Flying into a planet!") debug("Flying into a planet!")
else else
self.xSpeed = self.xSpeed + math.cos(self.angle) * speedChange*2
self.xSpeed = self.xSpeed + math.cos(self.angle) * speedChange*10
--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
self.ySpeed = self.ySpeed - math.sin(self.angle) * speedChange*10

self.isAccelerating = true
end end
end end
if love.keyboard.isDown(controls.flight.thrust.rotleft) then if love.keyboard.isDown(controls.flight.thrust.rotleft) then
@@ -148,6 +158,9 @@ function Player:flightControls()
end end
end end



-- Get Player Data:

function Player:getSpeed() -- absolute speed function Player:getSpeed() -- absolute speed
return math.abs(self.xSpeed) + math.abs(self.ySpeed) + math.abs(self.orbitalY) + math.abs(self.orbitalX) return math.abs(self.xSpeed) + math.abs(self.ySpeed) + math.abs(self.orbitalY) + math.abs(self.orbitalX)
end end
@@ -191,6 +204,9 @@ function Player:isLanded()
return landed return landed
end end



-- Player Calculations:

function Player:gravity() function Player:gravity()
if self:isLanded() then if self:isLanded() then
-- Player is landed: -- Player is landed:
@@ -220,21 +236,33 @@ function Player:updatePosition()
self.y = self.y + self.ySpeed + self.orbitalY self.y = self.y + self.ySpeed + self.orbitalY
end end


function Player:drawTexture(x, y, r)

-- Graphics / Drawing:

function Player:drawTexture(x, y, r, s, texture)
-- Texture offset and size -- Texture offset and size
local t = {s = 50}
local w, h = texture:getWidth(), texture:getHeight()


-- Draw Texture -- Draw Texture
love.graphics.setColor(1, 1, 1) love.graphics.setColor(1, 1, 1)
love.graphics.draw(self.texture, self.x, self.y, -(self.angle-calc.pi/2), 1, 1, self.width/2, self.height/2)
love.graphics.draw(texture, x, y, -(self.angle-calc.pi/2), s, s, w/2, h/2)
--debug("Angle: "..self.angle) --debug("Angle: "..self.angle)
end end


function Player:drawPositionIndicator(x, y)
-- Directional Arrow (when zoomed out)
if zoomlevel < settings.zoom.arrowAppear then
local s = 0.03
self:drawTexture(width/2, height/2, calc.pi/2 - self.angle, s, texture.ui.arrow.red)
end
end





-- MAIN -- MAIN


function Player:update(dt) function Player:update(dt)
self.isAccelerating = false
if self.angle > calc.pi*2 then if self.angle > calc.pi*2 then
self.angle = 0 self.angle = 0
elseif self.angle < 0 then elseif self.angle < 0 then
@@ -248,22 +276,29 @@ function Player:update(dt)
end end


function Player:draw() function Player:draw()
local x, y = self.x, self.y
local x, y, scale = self.x, self.y, 1
local dist = 10 local dist = 10

if not self.exploding then
self:drawTexture(x, y, calc.pi/2 - self.angle)
end


local shake = 0
-- Shake (to textures):
if self.isAccelerating then
shake = math.random(0, 1) * self.throttle
x, y = x + shake, y + shake
end
-- Draw Spacecraft:
if not self.exploding then 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)
-- Draw Thrust Exhaust:
if self.isAccelerating and self.throttle ~= 0 then
local limit = 0.5
if self.throttle < limit then
self:drawTexture(x, y, calc.pi/2 - self.angle, scale, self.texture.lowThrust)
else
self:drawTexture(x, y, calc.pi/2 - self.angle, scale, self.texture.fullThrust)
end
end 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)
end
-- Ship Texture Drawing:
self:drawTexture(x, y, calc.pi/2 - self.angle, scale, self.texture.ship)
end
end end

二进制
textures/player/orbiter.png 查看文件

之前 之后
宽度: 326  |  高度: 381  |  大小: 52 KiB

二进制
textures/player/orbiter/fullThrust.png 查看文件

之前 之后
宽度: 324  |  高度: 379  |  大小: 8.0 KiB

二进制
textures/player/orbiter/lowThrust.png 查看文件

之前 之后
宽度: 324  |  高度: 379  |  大小: 4.7 KiB

二进制
textures/player/orbiter/orbiter.png 查看文件

之前 之后
宽度: 324  |  高度: 379  |  大小: 39 KiB

+ 18
- 4
textures/textures.lua 查看文件

@@ -1,10 +1,24 @@
texture = { texture = {
-- (G)UI Textures:
ui = {
arrow = {
grey = love.graphics.newImage("textures/ui/arrow_grey.png"),
red = love.graphics.newImage("textures/ui/arrow_red.png")
}
},

-- Player/Spacecraft Textures:
player = { player = {
orbiter = "textures/player/orbiter.png"
-- Orbiter Spacecraft:
orbiter = {
ship = love.graphics.newImage("textures/player/orbiter/orbiter.png"),
lowThrust = love.graphics.newImage("textures/player/orbiter/lowThrust.png"),
fullThrust = love.graphics.newImage("textures/player/orbiter/fullThrust.png")
}
}, },
planet = {
-- here will go planet textures in future
}
-- Planet Textures:
planet = {}
} }


return texture return texture

二进制
textures/ui/arrow_grey.png 查看文件

之前 之后
宽度: 1000  |  高度: 1000  |  大小: 56 KiB

二进制
textures/ui/arrow_red.png 查看文件

之前 之后
宽度: 1000  |  高度: 1000  |  大小: 57 KiB

正在加载...
取消
保存