"Moving through a 'dungeon'": SugarCube (v2.0)


"Moving through a 'dungeon'" uses a two-dimensional array for the "map" and two variables, X and Y, to track movement through the space. The 'Map System' passage checks the positions of X and Y relative to the "map" and writes the available directional movement options. Once a direction is clicked, the X and Y values are added or subtracted corresponding to the direction and the map is re-drawn again. Symbols are then placed on the map matching the walls, movement space, and player.

Live Example

Download: Live Example

Twee Code

:: StoryTitle
SugarCube: Moving through a Dungeon

:: UserStylesheet[stylesheet]
#map {
    font-family: monospace; 

:: StoryInit
<<set $mapArray to 

<<set $positionX to 1>>
<<set $positionY to 1>>

:: Location
<span id="map">
<<for $i to 0; $i lt $mapArray.length; $i++>>
    <<for $k to 0; $k lt $mapArray[$i].length; $k++>>
        <<if $k eq $positionX and $i eq $positionY>>
            <<print "P">> 
        <<elseif $mapArray[$i][$k] eq 1>>
            <<print ".">> 
        <<elseif $mapArray[$i][$k] eq 0>>
            <<print "#">> 
        <<elseif $mapArray[$i][$k] eq 2>>
            <<print "E">> 
    <<print "<br>">>

:: East
<<set $positionX += 1>>
<<include "Map System">>

:: West
<<set $positionX -= 1>>
<<include "Map System">>

:: South
<<set $positionY += 1>>
<<include "Map System">>

:: North
<<set $positionY -= 1>>
<<include "Map System">>

:: Map System
<<include "Location">>
<<if $mapArray[$positionY-1][$positionX] eq 1>>
[[North]] | 
<<elseif $mapArray[$positionY-1][$positionX] eq 2>>
[[Exit]] | 
<<if $mapArray[$positionY][$positionX+1] eq 1>>
[[East]] | 
<<elseif $mapArray[$positionY][$positionX+1] eq 2>>
[[Exit]] | 
<<if $mapArray[$positionY+1][$positionX] eq 1>>
[[South]] | 
<<elseif $mapArray[$positionY+1][$positionX] eq 2>>
[[Exit]] | 
<<if $mapArray[$positionY][$positionX-1] eq 1>>
[[West]] | 
<<elseif $mapArray[$positionY][$positionX-1] eq 2>>
[[Exit]] | 

:: Exit
Double-click this passage to edit it.

Download: Twee Code

See Also

Setting and Showing Variables, Conditional Statements, Modularity

results matching ""

    No results matching ""