diff options
Diffstat (limited to 'res')
| -rw-r--r-- | res/maps/map1.tmx | 5 | ||||
| -rw-r--r-- | res/maps/map2.tmx | 7 | ||||
| -rw-r--r-- | res/scripts/common.lua | 25 | ||||
| -rw-r--r-- | res/scripts/map1_off_right.lua | 8 | ||||
| -rw-r--r-- | res/scripts/map2_off_left.lua | 3 |
5 files changed, 39 insertions, 9 deletions
| diff --git a/res/maps/map1.tmx b/res/maps/map1.tmx index 282b2ed..8afb909 100644 --- a/res/maps/map1.tmx +++ b/res/maps/map1.tmx | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="48" height="32" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="9"> | 2 | <map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="48" height="32" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="10"> |
| 3 | <tileset firstgid="1" name="fromRom" tilewidth="16" tileheight="16" tilecount="240" columns="10"> | 3 | <tileset firstgid="1" name="fromRom" tilewidth="16" tileheight="16" tilecount="240" columns="10"> |
| 4 | <image source="map1_tiles.png" width="160" height="384"/> | 4 | <image source="map1_tiles.png" width="160" height="384"/> |
| 5 | <tile id="77"> | 5 | <tile id="77"> |
| @@ -784,6 +784,9 @@ | |||
| 784 | <property name="script" value="map1_off_right"/> | 784 | <property name="script" value="map1_off_right"/> |
| 785 | </properties> | 785 | </properties> |
| 786 | </object> | 786 | </object> |
| 787 | <object id="9" name="fromRight" type="warp" x="748.667" y="382.667"> | ||
| 788 | <point/> | ||
| 789 | </object> | ||
| 787 | </objectgroup> | 790 | </objectgroup> |
| 788 | <layer id="1" name="Layer 0" width="48" height="32"> | 791 | <layer id="1" name="Layer 0" width="48" height="32"> |
| 789 | <data encoding="csv"> | 792 | <data encoding="csv"> |
| diff --git a/res/maps/map2.tmx b/res/maps/map2.tmx index 5bbe0c6..0f2e624 100644 --- a/res/maps/map2.tmx +++ b/res/maps/map2.tmx | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="64" height="64" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="2"> | 2 | <map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="64" height="64" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="3"> |
| 3 | <tileset firstgid="1" name="fromRom" tilewidth="16" tileheight="16" tilecount="180" columns="10"> | 3 | <tileset firstgid="1" name="fromRom" tilewidth="16" tileheight="16" tilecount="180" columns="10"> |
| 4 | <image source="map2_tiles.png" width="160" height="288"/> | 4 | <image source="map2_tiles.png" width="160" height="288"/> |
| 5 | <tile id="61"> | 5 | <tile id="61"> |
| @@ -640,6 +640,11 @@ | |||
| 640 | <object id="1" name="fromLeft" type="warp" x="16" y="364.667"> | 640 | <object id="1" name="fromLeft" type="warp" x="16" y="364.667"> |
| 641 | <point/> | 641 | <point/> |
| 642 | </object> | 642 | </object> |
| 643 | <object id="2" name="moveToLeft" type="trigger" x="-20.3333" y="304" width="22.6667" height="91.6667"> | ||
| 644 | <properties> | ||
| 645 | <property name="script" value="map2_off_left"/> | ||
| 646 | </properties> | ||
| 647 | </object> | ||
| 643 | </objectgroup> | 648 | </objectgroup> |
| 644 | <layer id="1" name="Layer 0" width="64" height="64"> | 649 | <layer id="1" name="Layer 0" width="64" height="64"> |
| 645 | <data encoding="csv"> | 650 | <data encoding="csv"> |
| 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 | |||
| 38 | function StopSound(soundId) | 38 | function StopSound(soundId) |
| 39 | mixer():stopChannel(soundId) | 39 | mixer():stopChannel(soundId) |
| 40 | end | 40 | end |
| 41 | |||
| 42 | function 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) | ||
| 49 | end | ||
| 50 | |||
| 51 | function 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) | ||
| 58 | end | ||
| 59 | |||
| 60 | function ChangeMap(map, warp) | ||
| 61 | FadeToBlack(150) | ||
| 62 | loadMap("../res/maps/" .. map .. ".tmx", warp) | ||
| 63 | coroutine.yield() | ||
| 64 | RemoveFadeout(150) | ||
| 65 | end | ||
| 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 @@ | |||
| 1 | function map1_off_right() | 1 | function 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") | ||
| 9 | end | 3 | end |
| 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 @@ | |||
| 1 | function map2_off_left() | ||
| 2 | ChangeMap("map1", "fromRight") | ||
| 3 | end | ||
