summary refs log tree commit diff stats
path: root/res/scripts
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-10 12:11:27 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-10 12:11:27 -0500
commit31dc0e443efc0aae48e11a0d98e699dbed5c7dcf (patch)
tree17e044698531fc1af82dddcbd144ae93d3ae0252 /res/scripts
parentfb58cb31804da7e5e40fc861927060a183962441 (diff)
downloadtanetane-31dc0e443efc0aae48e11a0d98e699dbed5c7dcf.tar.gz
tanetane-31dc0e443efc0aae48e11a0d98e699dbed5c7dcf.tar.bz2
tanetane-31dc0e443efc0aae48e11a0d98e699dbed5c7dcf.zip
Added fade out around map change
Also moved script system first in the loop so that the camera can catch up before rendering. Also added a map change from map 2 back to map 1.
Diffstat (limited to 'res/scripts')
-rw-r--r--res/scripts/common.lua25
-rw-r--r--res/scripts/map1_off_right.lua8
-rw-r--r--res/scripts/map2_off_left.lua3
3 files changed, 29 insertions, 7 deletions
diff --git a/res/scripts/common.lua b/res/scripts/common.lua index e7af1cf..f43b2e0 100644 --- a/res/scripts/common.lua +++ b/res/scripts/common.lua
@@ -38,3 +38,28 @@ end
38function StopSound(soundId) 38function StopSound(soundId)
39 mixer():stopChannel(soundId) 39 mixer():stopChannel(soundId)
40end 40end
41
42function FadeToBlack(length)
43 local progress = 0.0
44 while progress < length do
45 progress = progress + coroutine.yield()
46 setFadeoutProgress(progress / length)
47 end
48 setFadeoutProgress(1.0)
49end
50
51function RemoveFadeout(length)
52 local progress = length
53 while progress > 0 do
54 progress = progress - coroutine.yield()
55 setFadeoutProgress(progress / length)
56 end
57 setFadeoutProgress(0.0)
58end
59
60function ChangeMap(map, warp)
61 FadeToBlack(150)
62 loadMap("../res/maps/" .. map .. ".tmx", warp)
63 coroutine.yield()
64 RemoveFadeout(150)
65end
diff --git a/res/scripts/map1_off_right.lua b/res/scripts/map1_off_right.lua index 026c32e..7dd0113 100644 --- a/res/scripts/map1_off_right.lua +++ b/res/scripts/map1_off_right.lua
@@ -1,9 +1,3 @@
1function map1_off_right() 1function map1_off_right()
2 -- Because this script gets triggered within the CharacterSystem's tick method, 2 ChangeMap("map2", "fromLeft")
3 -- if we immediately cleared out the entities from the old map, we might end up
4 -- returning there and processing stale data. This yield here ensures that we
5 -- are no longer in the CharacterSystem, because processing gets picked back up
6 -- in the ScriptSystem.
7 coroutine.yield()
8 loadMap("../res/maps/map2.tmx", "fromLeft")
9end 3end
diff --git a/res/scripts/map2_off_left.lua b/res/scripts/map2_off_left.lua new file mode 100644 index 0000000..d4d9ce4 --- /dev/null +++ b/res/scripts/map2_off_left.lua
@@ -0,0 +1,3 @@
1function map2_off_left()
2 ChangeMap("map1", "fromRight")
3end