From d1235174157bd498d0c148325d7c8066e3ab6ac7 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Mon, 15 Feb 2021 12:05:18 -0500 Subject: Added camera shake to lightning event --- src/effect_system.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/effect_system.cpp') diff --git a/src/effect_system.cpp b/src/effect_system.cpp index 3a0afe4..74fc8f3 100644 --- a/src/effect_system.cpp +++ b/src/effect_system.cpp @@ -18,6 +18,22 @@ void EffectSystem::tick(double dt) { mapFade_ = (mapFadeDest_ - mapFadeStart_) / mapFadeLength_ * mapFadeThus_ + mapFadeStart_; } + + if (cameraShaking_) { + cameraShakeTimer_.accumulate(dt); + + while (cameraShakeTimer_.step()) { + cameraShakeOn_ = !cameraShakeOn_; + } + + if (cameraShakeOn_) { + cameraShakeOffset_.x() = 8; + cameraShakeOffset_.y() = 8; + } else { + cameraShakeOffset_.x() = 0; + cameraShakeOffset_.y() = 0; + } + } } void EffectSystem::fadeScreen(int length, double amount) { @@ -33,3 +49,15 @@ void EffectSystem::fadeMap(int length, double amount) { mapFadeLength_ = length; mapFadeThus_ = 0; } + +void EffectSystem::shakeCamera(int period) { + cameraShaking_ = true; + cameraShakeOffset_ = { 0, 0 }; + cameraShakeOn_ = false; + cameraShakeTimer_ = Timer(period); +} + +void EffectSystem::stopShakingCamera() { + cameraShaking_ = false; + cameraShakeOffset_ = { 0, 0 }; +} -- cgit 1.4.1