From a23a8f2ae53d25c9b9873bc3d3daafcb0ee412fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D0=B0?= =?UTF-8?q?=D1=80=20=D0=A1=D0=B8=D0=BC=D0=B8=D1=9B?= Date: Fri, 22 Feb 2019 10:16:55 +0000 Subject: [PATCH 1/5] Updated the Love version Changed the string which pointed to the older version of Love, with which the game works fine. But if you have the latest stable release of Love, you get the annoying message about incompatible version number. --- conf.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/conf.lua b/conf.lua index 9569b7d..bf6f7e2 100644 --- a/conf.lua +++ b/conf.lua @@ -2,6 +2,5 @@ love.conf = function(t) t.gammacorrect = true t.title, t.identity = "Gravity:Fall", "gravity-fall" t.modules.joystick, t.modules.physics = false, false - t.version = "0.10.2" + t.version = "11.2" end - \ No newline at end of file From e16ba4deb0ed6287bfdda532b7e8637e32e095ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D0=B0?= =?UTF-8?q?=D1=80=20=D0=A1=D0=B8=D0=BC=D0=B8=D1=9B?= Date: Fri, 22 Feb 2019 10:20:48 +0000 Subject: [PATCH 2/5] Replaced defn with lambda defn macro was removed from fennel at 1.0.0 release. Replaced the defn so that the game could be run with the later version of fennel. --- level.fnl | 10 +++++----- main.fnl | 26 +++++++++++++------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/level.fnl b/level.fnl index 19cc2cd..e0f6b0c 100644 --- a/level.fnl +++ b/level.fnl @@ -13,7 +13,7 @@ (var level-switcher nil) (var level-replay nil) -(defn find-mouse-intersect-planet [planets] +(lambda find-mouse-intersect-planet [planets] (let [x (love.mouse.getX) y (love.mouse.getY)] (lume.first @@ -24,10 +24,10 @@ (<= y1 y y2)) p))))))) -(defn launch-level [level] +(lambda launch-level [level] (set level.state :in-flight)) -(defn reset-level [level] +(lambda reset-level [level] (set level.state :awaiting-launch) (set level.duration 0) (set level.ship (ship.create level.level-info.ship.vx @@ -37,13 +37,13 @@ (each [k p (ipairs level.planets)] (planet.reset p))) -(defn trigger-game-over [level] +(lambda trigger-game-over [level] ;; when game is over due to crash, first the game state goes to ;; :crash, we need to tell the ship that it needs to animate to crash (set level.state :crashed) (ship.trigger-crash level.ship)) -(defn finish-level [level] +(lambda finish-level [level] (ship.fall-into-vortex level.ship [level.level-info.vortex.x level.level-info.vortex.y]) diff --git a/main.fnl b/main.fnl index 717fe8b..c3f8d3f 100644 --- a/main.fnl +++ b/main.fnl @@ -71,16 +71,16 @@ :tile 2}] :vortex {:x 600 :y 100 :radius 50}}]) -(defn move-to-next-level [] +(lambda move-to-next-level [] (set current-level (+ current-level 1)) (if (> current-level 5) (set ended? true) (set active-level (level.create (. levels current-level))))) -(defn replay-level [] +(lambda replay-level [] (set active-level (level.create (. levels current-level)))) -(defn start-game [] +(lambda start-game [] (set active-level (level.create (. levels current-level)))) (fn love.load [] @@ -107,13 +107,13 @@ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0" "123456789.,!?-+/():;%&`'*#=[]\"")))) -(defn center-text [s r] +(lambda center-text [s r] (let [w (/ (love.graphics.getWidth) 2) t (love.graphics.newText main-font s) x (math.floor (- w (/ (: t :getWidth) 2)))] (love.graphics.print s x r))) -(defn main-screen [] +(lambda main-screen [] (starfield.draw blinky-stars) (love.graphics.draw logo (/ (- (love.graphics.getWidth) @@ -127,12 +127,12 @@ (var text-render-offset 600) (var intro-text-opacity 255) -(defn offsetted-text [s offset color] +(lambda offsetted-text [s offset color] (tset color 4 intro-text-opacity) (love.graphics.setColor (unpack color)) (love.graphics.print s 20 (math.floor (+ text-render-offset (* 20 offset))))) -(defn render-text [] +(lambda render-text [] (let [s 0] (offsetted-text "Year: 3880 A.D. GAT, 34.33.090 STANDARD GALACTIC" s [0 255 0]) @@ -161,7 +161,7 @@ (love.graphics.setColor 255 255 255 255) (center-text "Press the SPACE key to continue." (math.floor (+ text-render-offset 700))))) -(defn second-screen [] +(lambda second-screen [] (starfield.draw blinky-stars) (render-text)) @@ -175,14 +175,14 @@ (when (< text-render-offset -100) (let [new-op (math.max 0 (- intro-text-opacity (* 50 t)))] (set intro-text-opacity new-op))) - + (if (> text-render-offset -200) (set text-render-offset (- text-render-offset (* 20 t))) nil) ) -(defn game-screen-update [t] +(lambda game-screen-update [t] (starfield.update blinky-stars t) (level.update active-level t)) @@ -191,11 +191,11 @@ (love.graphics.setColor 255 255 255 255) (level.draw active-level)) -(defn instructions-screen-update [t] +(lambda instructions-screen-update [t] (starfield.update blinky-stars t) (vortext.update inst-vortex t)) -(defn instructions-screen [] +(lambda instructions-screen [] (starfield.draw blinky-stars) (love.graphics.setColor 255 255 255 255) (center-text "GOAL: Pick up as many planetary resources as possible and reach the" 50) @@ -217,7 +217,7 @@ (center-text "When ready, press the SPACE key." 380)) -(defn thanks-screen [] +(lambda thanks-screen [] (love.graphics.setColor 255 255 255 255) (center-text "Thanks for playing!" 20) (center-text "Attributions" 60) From 4b8974c7325fb446adb524ddea9282573c8823de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D0=B0?= =?UTF-8?q?=D1=80=20=D0=A1=D0=B8=D0=BC=D0=B8=D1=9B?= Date: Fri, 22 Feb 2019 10:22:19 +0000 Subject: [PATCH 3/5] Updated love.audio.newSource At the version 11.2 of Love, it expects the second argument to be supplied --- level.fnl | 4 ++-- main.fnl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/level.fnl b/level.fnl index e0f6b0c..a09f707 100644 --- a/level.fnl +++ b/level.fnl @@ -57,10 +57,10 @@ (set level-switcher switcher) (set level-replay replay) - (set bg-music (love.audio.newSource "assets/alone.mp3")) + (set bg-music (love.audio.newSource "assets/alone.mp3" "static")) (: bg-music :setLooping true) - (set victory-music (love.audio.newSource "assets/victory.mp3")) + (set victory-music (love.audio.newSource "assets/victory.mp3" "static")) (: victory-music :setVolume 0.3)) :create (fn [level-info] diff --git a/main.fnl b/main.fnl index c3f8d3f..d050e9b 100644 --- a/main.fnl +++ b/main.fnl @@ -98,7 +98,7 @@ ;; intro stuff (set logo (love.graphics.newImage "assets/logo.png")) - (set intro-music (love.audio.newSource "assets/intro.mp3")) + (set intro-music (love.audio.newSource "assets/intro.mp3", "static")) (: intro-music :setVolume 0.3) (: intro-music :setLooping true) (set main-font (love.graphics.newImageFont From 76513cfbaa52709dd9b2a8e060a3599e04c6c170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D0=B0?= =?UTF-8?q?=D1=80=20=D0=A1=D0=B8=D0=BC=D0=B8=D1=9B?= Date: Fri, 22 Feb 2019 10:23:32 +0000 Subject: [PATCH 4/5] Whitespace removal This was done automagically. Figured I'd commit this since somebody else might get bit by it too. --- level.fnl | 8 ++++---- main.fnl | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/level.fnl b/level.fnl index a09f707..d70c60d 100644 --- a/level.fnl +++ b/level.fnl @@ -113,7 +113,7 @@ (and (= key "r") (= level.state :complete)) (level-replay))) - + :update (fn [level tt] ;; play music if we are not paying (when (and (not (: bg-music :isPlaying)) @@ -135,7 +135,7 @@ (math.min 10000 (+ level.survival-score-offered (math.floor (* tt 1000))))) - + (set level.duration (+ level.duration tt)) ;; apply any forces due to gravity on the ship @@ -201,14 +201,14 @@ ;; if there's a resource collision add score (set level.resource-score (+ level.resource-score (* 50000 resource-collides))) - + (when (and (= level.state :in-flight) full-collide?) (trigger-game-over level)))) :reset (fn [level] (reset-level level)) - + :draw (fn [level] (each [k p (ipairs level.planets)] (planet.draw p)) diff --git a/main.fnl b/main.fnl index d050e9b..3e75dd0 100644 --- a/main.fnl +++ b/main.fnl @@ -253,7 +253,7 @@ showing-instructions? (instructions-screen) - + (second-screen))) (fn love.keypressed [key unicode] From 18bfc2be2ecd7bdf28a34b43d94a8a2e4ad10459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D0=B0?= =?UTF-8?q?=D1=80=20=D0=A1=D0=B8=D0=BC=D0=B8=D1=9B?= Date: Fri, 22 Feb 2019 10:25:17 +0000 Subject: [PATCH 5/5] Updated the regenration of Lua files After applying my updates, I've regenerated the Lua files by running make. --- level.lua | 142 +++++++++++++++++++++++++++--------------------------- main.lua | 106 +++++++++++++++++++--------------------- 2 files changed, 121 insertions(+), 127 deletions(-) diff --git a/level.lua b/level.lua index 2a7ab4d..544b726 100644 --- a/level.lua +++ b/level.lua @@ -9,28 +9,31 @@ local bg_music = nil local victory_music = nil local level_switcher = nil local level_replay = nil -local function _0_(planets) - local x = love.mouse.getX() - local y = love.mouse.getY() - local function _1_(p) - local _2_ = planet.bounds(p) - local x1 = _2_[1] - local y1 = _2_[2] - local x2 = _2_[3] - local y2 = _2_[4] - if ((x1) <= (x) and ((x) <= (x2)) and (y1) <= (y) and ((y) <= (y2))) then - return p +local function find_mouse_intersect_planet(planets) + assert((nil ~= planets), ("Missing argument %s on %s:%s"):format("planets", "level.fnl", 16)) + do + local x = love.mouse.getX() + local y = love.mouse.getY() + local function _0_(p) + local _1_ = planet.bounds(p) + local x1 = _1_[1] + local y1 = _1_[2] + local x2 = _1_[3] + local y2 = _1_[4] + if (((x1 <= x) and (x <= x2)) and ((y1 <= y) and (y <= y2))) then + return p + end end + return lume.first(lume.filter(planets, _0_)) end - return lume.first(lume.filter(planets, _1_)) end -local find_mouse_intersect_planet = _0_ -local function _1_(level) +local function launch_level(level) + assert((nil ~= level), ("Missing argument %s on %s:%s"):format("level", "level.fnl", 27)) level.state = "in-flight" return nil end -local launch_level = _1_ -local function _2_(level) +local function reset_level(level) + assert((nil ~= level), ("Missing argument %s on %s:%s"):format("level", "level.fnl", 30)) level.state = "awaiting-launch" level.duration = 0 level.ship = ship.create(level["level-info"].ship.vx, level["level-info"].ship.vy) @@ -41,27 +44,26 @@ local function _2_(level) end return nil end -local reset_level = _2_ -local function _3_(level) +local function trigger_game_over(level) + assert((nil ~= level), ("Missing argument %s on %s:%s"):format("level", "level.fnl", 40)) level.state = "crashed" return ship["trigger-crash"](level.ship) end -local trigger_game_over = _3_ -local function _4_(level) - ship["fall-into-vortex"](level.ship, ({level["level-info"].vortex.x, level["level-info"].vortex.y})) +local function finish_level(level) + assert((nil ~= level), ("Missing argument %s on %s:%s"):format("level", "level.fnl", 46)) + ship["fall-into-vortex"](level.ship, {level["level-info"].vortex.x, level["level-info"].vortex.y}) level.state = "complete" return nil end -local finish_level = _4_ -local function _5_(level_info) - local planets = ({}) +local function _0_(level_info) + local planets = {} for k, p in ipairs(level_info.planets) do table.insert(planets, planet.create(p.size, p.distance, p.resources, p.tile)) end util.pp(planets) - return ({["level-info"] = level_info, ["resource-score"] = 0, ["speed-up"] = 1, ["survival-score-offered"] = 0, duration = 0, planets = planets, ship = ship.create(level_info.ship.vx, level_info.ship.vy), state = "awaiting-launch", vortex = vortex.create(level_info.vortex.x, level_info.vortex.y, level_info.vortex.radius)}) + return {["level-info"] = level_info, ["resource-score"] = 0, ["speed-up"] = 1, ["survival-score-offered"] = 0, duration = 0, planets = planets, ship = ship.create(level_info.ship.vx, level_info.ship.vy), state = "awaiting-launch", vortex = vortex.create(level_info.vortex.x, level_info.vortex.y, level_info.vortex.radius)} end -local function _6_(level) +local function _1_(level) for k, p in ipairs(level.planets) do planet.draw(p) end @@ -69,75 +71,75 @@ local function _6_(level) vortex.draw(level.vortex) return hud.draw(level) end -local function _7_(level, key, unicode) - if (key) == ("s") then +local function _2_(level, key, unicode) + if (key == "s") then local new_s = (level["speed-up"] + 1) - local function _8_() - if (new_s) > (4) then + local function _3_() + if (new_s > 4) then return 1 else return new_s end end - level["speed-up"] = _8_() + level["speed-up"] = _3_() return nil - elseif ((key) == ("space") and (level.state) == ("awaiting-launch")) then + elseif ((key == "space") and (level.state == "awaiting-launch")) then return launch_level(level) - elseif ((key) == ("space") and (level.state) == ("in-flight")) then + elseif ((key == "space") and (level.state == "in-flight")) then return reset_level(level) - elseif ((key) == ("space") and (level.state) == ("in-flight")) then + elseif ((key == "space") and (level.state == "in-flight")) then return reset_level(level) - elseif ((key) == ("space") and (level.state) == ("crashed")) then + elseif ((key == "space") and (level.state == "crashed")) then return reset_level(level) - elseif ((key) == ("space") and (level.state) == ("complete")) then + elseif ((key == "space") and (level.state == "complete")) then return level_switcher() - elseif ((key) == ("r") and (level.state) == ("complete")) then + elseif ((key == "r") and (level.state == "complete")) then return level_replay() end end -local function _8_(switcher, replay) +local function _3_(switcher, replay) planet.load() ship.load() hud.load() level_switcher = switcher level_replay = replay - bg_music = love.audio.newSource("assets/alone.mp3") + bg_music = love.audio.newSource("assets/alone.mp3", "static") bg_music:setLooping(true) - victory_music = love.audio.newSource("assets/victory.mp3") + victory_music = love.audio.newSource("assets/victory.mp3", "static") return victory_music:setVolume(0.29999999999999999) end -local function _9_(level) +local function _4_(level) return reset_level(level) end -local function _10_(level, tt) - local function _11_() - if (not bg_music:isPlaying() and (level.state) == ("awaiting-launch")) then +local function _5_(level, tt) + local function _6_() + if (not bg_music:isPlaying() and (level.state == "awaiting-launch")) then victory_music:stop() return bg_music:play() end end - _11_() - local function _12_() - if (bg_music:isPlaying() and (level.state) == ("complete")) then + _6_() + local function _7_() + if (bg_music:isPlaying() and (level.state == "complete")) then victory_music:play() return bg_music:stop() end end - _12_() + _7_() do local t = (tt * level["speed-up"]) - local function _13_() - if (level.state) == ("in-flight") then + local function _8_() + if (level.state == "in-flight") then level["survival-score-offered"] = math.min(10000, (level["survival-score-offered"] + math.floor((tt * 1000)))) level.duration = (level.duration + tt) ship["apply-planetary-forces"](level.ship, level.planets) return ship["update-forces"](level.ship, t) end end - _13_() - local function _14_() - if (level.state) == ("awaiting-launch") then - local function _14_() + _8_() + local function _9_() + if (level.state == "awaiting-launch") then + local function _9_() if love.mouse.isDown(1) then if not tracking_info then local p = find_mouse_intersect_planet(level.planets) @@ -145,7 +147,7 @@ local function _10_(level, tt) print("found planet:", p) love.mouse.setGrabbed(true) planet["mark-highlight"](p) - tracking_info = ({planet = p, x = love.mouse.getX(), y = love.mouse.getY()}) + tracking_info = {planet = p, x = love.mouse.getX(), y = love.mouse.getY()} return nil end end @@ -158,7 +160,7 @@ local function _10_(level, tt) end end end - _14_() + _9_() if tracking_info then local mx = love.mouse.getX() local my = love.mouse.getY() @@ -171,7 +173,7 @@ local function _10_(level, tt) end end end - _14_() + _9_() for k, p in ipairs(level.planets) do planet.update(p, t) end @@ -181,31 +183,31 @@ local function _10_(level, tt) do local vortex_bounds = vortex["center-and-radius"](level.vortex) local ship_bounds = ship["center-and-radius"](level.ship) - local function _13_() - if (util["sphere-collision"](vortex_bounds, ship_bounds) and (level.state) == ("in-flight")) then + local function _8_() + if (util["sphere-collision"](vortex_bounds, ship_bounds) and (level.state == "in-flight")) then return finish_level(level) end end - _13_() + _8_() end do local ship_center_and_radius = ship["center-and-radius"](level.ship) - local function _13_(p) + local function _8_(p) return planet.collide(p, ship_center_and_radius) end - local coll_status = lume.map(level.planets, _13_) - local function _14_(s) - return (s) == ("full-collide") + local coll_status = lume.map(level.planets, _8_) + local function _9_(s) + return (s == "full-collide") end - local full_collide_3f = lume.first(lume.filter(coll_status, _14_)) - local function _15_(s) - return (s) == ("resource-collide") + local full_collide_3f = lume.first(lume.filter(coll_status, _9_)) + local function _10_(s) + return (s == "resource-collide") end - local resource_collides = #lume.filter(coll_status, _15_) + local resource_collides = #lume.filter(coll_status, _10_) level["resource-score"] = (level["resource-score"] + (50000 * resource_collides)) - if ((level.state) == ("in-flight") and full_collide_3f) then + if ((level.state == "in-flight") and full_collide_3f) then return trigger_game_over(level) end end end -return ({create = _5_, draw = _6_, keypressed = _7_, load = _8_, reset = _9_, update = _10_}) +return {create = _0_, draw = _1_, keypressed = _2_, load = _3_, reset = _4_, update = _5_} diff --git a/main.lua b/main.lua index 166ae63..da5edde 100644 --- a/main.lua +++ b/main.lua @@ -11,10 +11,10 @@ local util = require("util") local starfield = require("starfield") local level = require("level") local vortext = require("vortex") -local levels = ({({planets = ({({distance = 300, resources = ({0}), size = 2, tile = 1})}), ship = ({vx = -1, vy = 0}), vortex = ({radius = 40, x = 400, y = 100})}), ({planets = ({({distance = 400, resources = ({0}), size = 3, tile = 1})}), ship = ({vx = -0.5, vy = 0.5}), vortex = ({radius = 30, x = 300, y = 200})}), ({planets = ({({distance = 400, resources = ({0}), size = 3, tile = 1}), ({distance = 300, resources = ({0, 10}), size = 2, tile = 3})}), ship = ({vx = -0.5, vy = 0.5}), vortex = ({radius = 50, x = 300, y = 100})}), ({planets = ({({distance = 400, resources = ({0}), size = 3, tile = 1}), ({distance = 250, resources = ({50}), size = 2, tile = 3}), ({distance = 500, resources = ({0}), size = 1, tile = 2})}), ship = ({vx = -0.5, vy = 0}), vortex = ({radius = 50, x = 100, y = 300})}), ({planets = ({({distance = 400, resources = ({0, 50}), size = 3, tile = 1}), ({distance = 500, resources = ({25, 75}), size = 2, tile = 3}), ({distance = 600, resources = ({0}), size = 1, tile = 2})}), ship = ({vx = -0.5, vy = 0}), vortex = ({radius = 50, x = 600, y = 100})})}) -local function _0_() +local levels = {{planets = {{distance = 300, resources = {0}, size = 2, tile = 1}}, ship = {vx = -1, vy = 0}, vortex = {radius = 40, x = 400, y = 100}}, {planets = {{distance = 400, resources = {0}, size = 3, tile = 1}}, ship = {vx = -0.5, vy = 0.5}, vortex = {radius = 30, x = 300, y = 200}}, {planets = {{distance = 400, resources = {0}, size = 3, tile = 1}, {distance = 300, resources = {0, 10}, size = 2, tile = 3}}, ship = {vx = -0.5, vy = 0.5}, vortex = {radius = 50, x = 300, y = 100}}, {planets = {{distance = 400, resources = {0}, size = 3, tile = 1}, {distance = 250, resources = {50}, size = 2, tile = 3}, {distance = 500, resources = {0}, size = 1, tile = 2}}, ship = {vx = -0.5, vy = 0}, vortex = {radius = 50, x = 100, y = 300}}, {planets = {{distance = 400, resources = {0, 50}, size = 3, tile = 1}, {distance = 500, resources = {25, 75}, size = 2, tile = 3}, {distance = 600, resources = {0}, size = 1, tile = 2}}, ship = {vx = -0.5, vy = 0}, vortex = {radius = 50, x = 600, y = 100}}} +local function move_to_next_level() current_level = (current_level + 1) - if (current_level) > (5) then + if (current_level > 5) then ended_3f = true return nil else @@ -22,17 +22,14 @@ local function _0_() return nil end end -local move_to_next_level = _0_ -local function _1_() +local function replay_level() active_level = level.create(levels[current_level]) return nil end -local replay_level = _1_ -local function _2_() +local function start_game() active_level = level.create(levels[current_level]) return nil end -local start_game = _2_ love.load = function() love.graphics.setDefaultFilter("nearest", "nearest") blinky_stars = starfield.create() @@ -40,105 +37,104 @@ love.load = function() level.load(move_to_next_level, replay_level) inst_vortex = vortext.create((love.graphics.getWidth() / 2), 130, 40) logo = love.graphics.newImage("assets/logo.png") - intro_music = love.audio.newSource("assets/intro.mp3") + intro_music = love.audio.newSource("assets/intro.mp3", "static") intro_music:setVolume(0.29999999999999999) intro_music:setLooping(true) main_font = love.graphics.newImageFont("assets/font.png", (" abcdefghijklmnopqrstuvwxyz" .. "ABCDEFGHIJKLMNOPQRSTUVWXYZ0" .. "123456789.,!?-+/():;%&`'*#=[]\"")) return nil end -do local _ = love.load end -local function _3_(s, r) - local w = (love.graphics.getWidth() / 2) - local t = love.graphics.newText(main_font, s) - local x = math.floor((w - (t:getWidth() / 2))) - return love.graphics.print(s, x, r) +local function center_text(s, r) + assert((nil ~= r), ("Missing argument %s on %s:%s"):format("r", "main.fnl", 110)) + assert((nil ~= s), ("Missing argument %s on %s:%s"):format("s", "main.fnl", 110)) + do + local w = (love.graphics.getWidth() / 2) + local t = love.graphics.newText(main_font, s) + local x = math.floor((w - (t:getWidth() / 2))) + return love.graphics.print(s, x, r) + end end -local center_text = _3_ -local function _4_() +local function main_screen() starfield.draw(blinky_stars) love.graphics.draw(logo, ((love.graphics.getWidth() - logo:getWidth()) / 2), 100) love.graphics.setColor(255, 0, 0, 200) return center_text("A mediocre space adventure", 180) end -local main_screen = _4_ local text_render_offset = 600 local intro_text_opacity = 255 -local function _5_(s, offset, color) +local function offsetted_text(s, offset, color) + assert((nil ~= color), ("Missing argument %s on %s:%s"):format("color", "main.fnl", 130)) + assert((nil ~= offset), ("Missing argument %s on %s:%s"):format("offset", "main.fnl", 130)) + assert((nil ~= s), ("Missing argument %s on %s:%s"):format("s", "main.fnl", 130)) color[4] = intro_text_opacity love.graphics.setColor(unpack(color)) return love.graphics.print(s, 20, math.floor((text_render_offset + (20 * offset)))) end -local offsetted_text = _5_ -local function _6_() +local function render_text() local s = 0 - offsetted_text("Year: 3880 A.D. GAT, 34.33.090 STANDARD GALACTIC", s, ({0, 255, 0})) - offsetted_text("Human reign on this galaxy is coming to an end.", (s + 2), ({200, 200, 200})) - offsetted_text("Uncontrolled greed has caused the already faltering galactic economy to collapse.", (s + 4), ({200, 200, 200})) - offsetted_text("The planetary systems are on their own.", (s + 5), ({200, 200, 200})) - offsetted_text("There's no SPOOKY-DORA plasma ion fuel left to power interplanetary", (s + 7), ({200, 200, 200})) - offsetted_text("transport systems. Lack of food and resources has caused unprecedented", (s + 8), ({200, 200, 200})) - offsetted_text("civil unrest across planetary systems. People are dying, there's", (s + 9), ({200, 200, 200})) - offsetted_text("wide-spread looting.", (s + 10), ({200, 200, 200})) - offsetted_text("There's no law, no order.", (s + 11), ({200, 200, 200})) - offsetted_text("The only way to slow down the eventual demise of these systems is to", (s + 13), ({200, 200, 200})) - offsetted_text("get transportation back up.", (s + 14), ({200, 200, 200})) - offsetted_text("There's no fuel to power transportation, but there's GRAVITY.", (s + 18), ({200, 200, 200})) + offsetted_text("Year: 3880 A.D. GAT, 34.33.090 STANDARD GALACTIC", s, {0, 255, 0}) + offsetted_text("Human reign on this galaxy is coming to an end.", (s + 2), {200, 200, 200}) + offsetted_text("Uncontrolled greed has caused the already faltering galactic economy to collapse.", (s + 4), {200, 200, 200}) + offsetted_text("The planetary systems are on their own.", (s + 5), {200, 200, 200}) + offsetted_text("There's no SPOOKY-DORA plasma ion fuel left to power interplanetary", (s + 7), {200, 200, 200}) + offsetted_text("transport systems. Lack of food and resources has caused unprecedented", (s + 8), {200, 200, 200}) + offsetted_text("civil unrest across planetary systems. People are dying, there's", (s + 9), {200, 200, 200}) + offsetted_text("wide-spread looting.", (s + 10), {200, 200, 200}) + offsetted_text("There's no law, no order.", (s + 11), {200, 200, 200}) + offsetted_text("The only way to slow down the eventual demise of these systems is to", (s + 13), {200, 200, 200}) + offsetted_text("get transportation back up.", (s + 14), {200, 200, 200}) + offsetted_text("There's no fuel to power transportation, but there's GRAVITY.", (s + 18), {200, 200, 200}) love.graphics.setColor(255, 13, 255, 255) love.graphics.draw(logo, ((love.graphics.getWidth() - logo:getWidth()) / 2), math.floor((text_render_offset + 600))) center_text("An OK space adventure", math.floor((text_render_offset + 680))) love.graphics.setColor(255, 255, 255, 255) return center_text("Press the SPACE key to continue.", math.floor((text_render_offset + 700))) end -local render_text = _6_ -local function _7_() +local function second_screen() starfield.draw(blinky_stars) return render_text() end -local second_screen = _7_ local playing_intro_music_3f = false local function second_screen_update(t) starfield.update(blinky_stars, t) - local function _8_() + local function _0_() if not playing_intro_music_3f then intro_music:play() playing_intro_music_3f = true return nil end end - _8_() - local function _9_() - if (text_render_offset) < (-100) then + _0_() + local function _1_() + if (text_render_offset < -100) then local new_op = math.max(0, (intro_text_opacity - (50 * t))) intro_text_opacity = new_op return nil end end - _9_() - if (text_render_offset) > (-200) then + _1_() + if (text_render_offset > -200) then text_render_offset = (text_render_offset - (20 * t)) return nil else return nil end end -do local _ = second_screen_update end -local function _8_(t) +local function game_screen_update(t) + assert((nil ~= t), ("Missing argument %s on %s:%s"):format("t", "main.fnl", 185)) starfield.update(blinky_stars, t) return level.update(active_level, t) end -local game_screen_update = _8_ local function game_screen() starfield.draw(blinky_stars) love.graphics.setColor(255, 255, 255, 255) return level.draw(active_level) end -do local _ = game_screen end -local function _9_(t) +local function instructions_screen_update(t) + assert((nil ~= t), ("Missing argument %s on %s:%s"):format("t", "main.fnl", 194)) starfield.update(blinky_stars, t) return vortext.update(inst_vortex, t) end -local instructions_screen_update = _9_ -local function _10_() +local function instructions_screen() starfield.draw(blinky_stars) love.graphics.setColor(255, 255, 255, 255) center_text("GOAL: Pick up as many planetary resources as possible and reach the", 50) @@ -156,8 +152,7 @@ local function _10_() center_text("Needless to say, don't run into planets.", 340) return center_text("When ready, press the SPACE key.", 380) end -local instructions_screen = _10_ -local function _11_() +local function thanks_screen() love.graphics.setColor(255, 255, 255, 255) center_text("Thanks for playing!", 20) center_text("Attributions", 60) @@ -170,7 +165,6 @@ local function _11_() center_text("Victory Music: Axton Crolly @ OpenGameArt", 170) return center_text("Crate Image: Bluerobin2 @ OpenGameArt", 185) end -local thanks_screen = _11_ love.update = function(t) if active_level then return game_screen_update(t) @@ -180,7 +174,6 @@ love.update = function(t) return second_screen_update(t) end end -do local _ = love.update end love.draw = function() love.graphics.setFont(main_font) if ended_3f then @@ -193,17 +186,16 @@ love.draw = function() return second_screen() end end -do local _ = love.draw end love.keypressed = function(key, unicode) print(math.floor(text_render_offset)) if active_level then return level.keypressed(active_level, key, unicode) - elseif (showing_instructions_3f and (key) == ("space")) then + elseif (showing_instructions_3f and (key == "space")) then return start_game() - elseif (not showing_instructions_3f and (key) == ("space") and (math.floor(text_render_offset)) <= (-200)) then + elseif (not showing_instructions_3f and (key == "space") and (math.floor(text_render_offset) <= -200)) then showing_instructions_3f = true return intro_music:stop() - elseif (key) == ("space") then + elseif (key == "space") then intro_text_opacity = 0 text_render_offset = -200 return nil