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