summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheav <hheav3@gmail.com>2023-03-30 11:12:14 +0000
committerheav <hheav3@gmail.com>2023-03-30 11:12:14 +0000
commit4c4fdc286acaa6aac555fe4188f36bd301f56b11 (patch)
tree811a5596788b902c92f105960f3bb462a0637bec
parent0819d794ed125bfca0b7509ad2b30fc09d9e0670 (diff)
heaven.
-rw-r--r--assets.lua1
-rw-r--r--assets/music/the.mp3bin0 -> 10301762 bytes
-rw-r--r--game/gfx.lua3
-rw-r--r--game/init.lua2
-rw-r--r--game/music.lua21
-rw-r--r--main.lua2
6 files changed, 27 insertions, 2 deletions
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
--- /dev/null
+++ b/assets/music/the.mp3
Binary files 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