From 4c4fdc286acaa6aac555fe4188f36bd301f56b11 Mon Sep 17 00:00:00 2001 From: heav Date: Thu, 30 Mar 2023 11:12:14 +0000 Subject: heaven. --- assets.lua | 1 + assets/music/the.mp3 | Bin 0 -> 10301762 bytes game/gfx.lua | 3 ++- game/init.lua | 2 ++ game/music.lua | 21 +++++++++++++++++++++ main.lua | 2 +- 6 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 assets/music/the.mp3 create mode 100644 game/music.lua diff --git a/assets.lua b/assets.lua index 4994abc..bf8d200 100644 --- a/assets.lua +++ b/assets.lua @@ -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 new file mode 100644 index 0000000..f23a9f8 Binary files /dev/null and b/assets/music/the.mp3 differ 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 diff --git a/main.lua b/main.lua index bbdd1a7..224c3ab 100644 --- a/main.lua +++ b/main.lua @@ -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 -- cgit v1.2.3