...
|
...
|
@@ -161,6 +161,11 @@ function _M:runReal() |
161
|
161
|
|
162
|
162
|
self.zone_font = FontPackage:get("zone")
|
163
|
163
|
|
|
164
|
+ self.shake_time = nil
|
|
165
|
+ self.shake_force = 0
|
|
166
|
+ self.shake_x = 0
|
|
167
|
+ self.shake_y = 0
|
|
168
|
+
|
164
|
169
|
self.inited = true
|
165
|
170
|
|
166
|
171
|
if self.level and self.level.map then
|
...
|
...
|
@@ -1721,6 +1726,11 @@ function _M:updateFOV() |
1721
|
1726
|
self.player:playerFOV()
|
1722
|
1727
|
end
|
1723
|
1728
|
|
|
1729
|
+function _M:shakeScreen(time, force)
|
|
1730
|
+ self.shake_time = time
|
|
1731
|
+ self.shake_force = force
|
|
1732
|
+end
|
|
1733
|
+
|
1724
|
1734
|
function _M:displaySeensMap(map, x, y, nb_keyframe)
|
1725
|
1735
|
map._map:drawSeensTexture(x, y)
|
1726
|
1736
|
end
|
...
|
...
|
@@ -1730,6 +1740,18 @@ function _M:displayMap(nb_keyframes, prev_fbo) |
1730
|
1740
|
if self.level and self.level.map and self.level.map.finished then
|
1731
|
1741
|
local map = self.level.map
|
1732
|
1742
|
|
|
1743
|
+ if self.shake_time then
|
|
1744
|
+ if self.shake_time <= 0 then
|
|
1745
|
+ self.shake_time = nil
|
|
1746
|
+ self.shake_x = 0
|
|
1747
|
+ self.shake_y = 0
|
|
1748
|
+ else
|
|
1749
|
+ self.shake_time = self.shake_time - nb_keyframes
|
|
1750
|
+ self.shake_x = self.shake_x + rng.range(-self.shake_force, self.shake_force)
|
|
1751
|
+ self.shake_y = self.shake_y + rng.range(-self.shake_force, self.shake_force)
|
|
1752
|
+ end
|
|
1753
|
+ end
|
|
1754
|
+
|
1733
|
1755
|
-- Display the map and compute FOV for the player if needed
|
1734
|
1756
|
local changed = map.changed
|
1735
|
1757
|
if changed then self:updateFOV() end
|
...
|
...
|
@@ -1764,7 +1786,7 @@ function _M:displayMap(nb_keyframes, prev_fbo) |
1764
|
1786
|
self.fbo2:use(false, prev_fbo)
|
1765
|
1787
|
|
1766
|
1788
|
_2DNoise:bind(1, false)
|
1767
|
|
- self.fbo2:postEffects(self.fbo, prev_fbo, map.display_x, map.display_y, map.viewport.width, map.viewport.height, unpack(self.posteffects_use))
|
|
1789
|
+ self.fbo2:postEffects(self.fbo, prev_fbo, map.display_x + self.shake_x, map.display_y + self.shake_y, map.viewport.width, map.viewport.height, unpack(self.posteffects_use))
|
1768
|
1790
|
if self.target then self.target:display(nil, nil, prev_fbo, nb_keyframes) end
|
1769
|
1791
|
|
1770
|
1792
|
-- Basic display; no FBOs
|
...
|
...
|
|