deathblur.lua 849 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. local g = love.graphics
  2. local DeathBlur = {}
  3. function DeathBlur:init()
  4. self:resize()
  5. self.amount = 0.1
  6. end
  7. function DeathBlur:update()
  8. self.active = ctx.ded
  9. if self.active then
  10. self.amount = math.lerp(self.amount, 2, .25 * ls.tickrate)
  11. end
  12. end
  13. function DeathBlur:applyEffect(source, target)
  14. self.hblur:send('amount', self.amount / source:getWidth())
  15. self.vblur:send('amount', self.amount / source:getHeight())
  16. g.setColor(255, 255, 255)
  17. for i = 1, 6 do
  18. g.setShader(self.hblur)
  19. target:renderTo(function()
  20. g.draw(source)
  21. end)
  22. g.setShader(self.vblur)
  23. source:renderTo(function()
  24. g.draw(target)
  25. end)
  26. end
  27. end
  28. function DeathBlur:resize()
  29. self.canvas = love.graphics.newCanvas()
  30. self.hblur = data.media.shaders.horizontalBlur
  31. self.vblur = data.media.shaders.verticalBlur
  32. end
  33. return DeathBlur