balatro_background_shader.mp4
-- main.lua
function love.load()
love.graphics.setBackgroundColor(1, 1, 1, 1)
shader = love.graphics.newShader("assets/shaders/background.fs")
-- 初始化 shader 的外部变量
time = 0
spin_time = 0
colour_1 = { 1.0, 0.0, 0.0, 1.0 } -- 红色 (RGBA)
colour_2 = { 0.0, 1.0, 0.0, 1.0 } -- 绿色
colour_3 = { 0.0, 0.0, 1.0, 1.0 } -- 蓝色
contrast = 1.0
spin_amount = 0.5
-- 创建一个全屏矩形(使用 Canvas 或直接绘制)
screen_width, screen_height = love.graphics.getDimensions()
Game:init()
end
function love.update(dt)
-- 更新时间变量
time = time + dt
spin_time = spin_time + dt
-- 将变量传递给 shader
shader:send("time", time)
shader:send("spin_time", spin_time)
shader:send("colour_1", colour_1)
shader:send("colour_2", colour_2)
shader:send("colour_3", colour_3)
shader:send("contrast", contrast)
shader:send("spin_amount", spin_amount)
end
function love.draw()
-- 设置 shader
love.graphics.setShader(shader)
-- 绘制全屏矩形
love.graphics.rectangle("fill", 0, 0, screen_width, screen_height)
-- 取消 shader
love.graphics.setShader()
Game:draw()
end