aboutsummaryrefslogtreecommitdiff
path: root/core/screen_shaker.lua
diff options
context:
space:
mode:
Diffstat (limited to 'core/screen_shaker.lua')
-rw-r--r--core/screen_shaker.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/core/screen_shaker.lua b/core/screen_shaker.lua
new file mode 100644
index 0000000..0316559
--- /dev/null
+++ b/core/screen_shaker.lua
@@ -0,0 +1,28 @@
+Class = require("libs.hump.class")
+Shack = require("libs.shack")
+local Timer = require("libs.hump.timer")
+
+ScreenShaker = Class {
+ init = function(self)
+ monsterGrowl = love.audio.newSource("assets/sfx/monster_growl.wav", "static")
+ local width, height = love.graphics.getDimensions()
+ Shack:setDimensions(width, height)
+ Timer.every(10, shakeScreen)
+ end
+}
+
+function ScreenShaker:update(dt)
+ Timer.update(dt)
+ Shack:update(dt)
+end
+
+function ScreenShaker:draw()
+ Shack:apply()
+end
+
+function shakeScreen()
+ Shack:setShake(20)
+ monsterGrowl:play()
+end
+
+return ScreenShaker \ No newline at end of file