diff options
author | heav <hheav3@gmail.com> | 2023-03-30 11:12:14 +0000 |
---|---|---|
committer | heav <hheav3@gmail.com> | 2023-03-30 11:12:14 +0000 |
commit | 4c4fdc286acaa6aac555fe4188f36bd301f56b11 (patch) | |
tree | 811a5596788b902c92f105960f3bb462a0637bec | |
parent | 0819d794ed125bfca0b7509ad2b30fc09d9e0670 (diff) |
heaven.
-rw-r--r-- | assets.lua | 1 | ||||
-rw-r--r-- | assets/music/the.mp3 | bin | 0 -> 10301762 bytes | |||
-rw-r--r-- | game/gfx.lua | 3 | ||||
-rw-r--r-- | game/init.lua | 2 | ||||
-rw-r--r-- | game/music.lua | 21 | ||||
-rw-r--r-- | main.lua | 2 |
6 files changed, 27 insertions, 2 deletions
@@ -4,6 +4,7 @@ local loaders = { sfx = function(f) return love.audio.newSource(f, "static") end, img = love.graphics.newImage, shader = love.graphics.newShader, + music = function(f) return love.audio.newSource(f, "stream") end, } local loaded = {} diff --git a/assets/music/the.mp3 b/assets/music/the.mp3 Binary files differnew file mode 100644 index 0000000..f23a9f8 --- /dev/null +++ b/assets/music/the.mp3 diff --git a/game/gfx.lua b/game/gfx.lua index 53fe63b..0f45fc4 100644 --- a/game/gfx.lua +++ b/game/gfx.lua @@ -50,7 +50,8 @@ function M:draw_square(block, x, y, block_size, shadow) love.graphics.setShader(hueshift) local hsv = colors[block] or {0, 0, 1} - hueshift:send("colorize_to",{(hsv[1] + love.timer.getTime()/5) % 1, math.sin(math.asin(hsv[2])+hsv[1]*math.pi*2+love.timer.getTime()/5), hsv[3]}) + --hueshift:send("colorize_to",{(hsv[1] + love.timer.getTime()/5) % 1, math.sin(math.asin(hsv[2])+hsv[1]*math.pi*2+love.timer.getTime()/5), hsv[3]}) + hueshift:send("colorize_to", hsv) local img = self.assets.img.block local img_w, img_h = img:getDimensions() diff --git a/game/init.lua b/game/init.lua index bdd6609..de4879c 100644 --- a/game/init.lua +++ b/game/init.lua @@ -4,6 +4,7 @@ local tetrominoes = require "game.tetrominoes" local heav_optimal_shapes = require "game.heav_optimal_shapes" local gfx = require "game.gfx" local sfx = require "game.sfx" +local music = require "game.music" local bag = require "game.bag" local M = {} @@ -31,6 +32,7 @@ function M.new(assets, params) new.stats = {pieces=0, lines=0} new.gfx = gfx.new(assets, new) new.sfx = sfx.new(assets) + new.music = music.new(assets, new) new.gravity_delay = 0.5 new.lock_delay = params.lock_delay or 0.8 new.infinity = params.infinity or false diff --git a/game/music.lua b/game/music.lua new file mode 100644 index 0000000..b4ed5f1 --- /dev/null +++ b/game/music.lua @@ -0,0 +1,21 @@ +local M = {} +M.__index = M +M.playing = nil + +function M.new(assets) + local new = setmetatable({}, M) + new.assets = assets + return new +end + +function M:play(name) + assert(self.assets.music[name], name.." isn't extant music") + if M.playing ~= self.assets.music[name] then + if M.playing then M.playing:stop() end + self.assets.music[name]:seek(0) + M.playing = self.assets.music[name] + end + self.assets.music[name]:play() +end + +return M @@ -1,12 +1,12 @@ local evloop = require "evloop" local game = require "game" local assets = require "assets" - local function main() evloop.poll "load" local game_assets = assets.load_from "assets" evloop.poll "loaded" local game_obj = game.new(game_assets, {}) + game_obj.music:play("the") game_obj:run() evloop:quit() end |