Last active
June 21, 2020 01:24
-
-
Save paulera/900c297128f1bf0f6e5326ec30fe3805 to your computer and use it in GitHub Desktop.
Example of how to implement a board game of arbitrary shape in GDevelop 5, based on tiles placement. See more: https://paulera.itch.io/board-walk-with-raycast
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"firstLayout": "", | |
"gdVersion": { | |
"build": 98, | |
"major": 4, | |
"minor": 0, | |
"revision": 0 | |
}, | |
"properties": { | |
"adMobAppId": "", | |
"adaptGameResolutionAtRuntime": true, | |
"folderProject": false, | |
"linuxExecutableFilename": "", | |
"macExecutableFilename": "", | |
"orientation": "landscape", | |
"packageName": "com.unforgivenexception.gdevelop.boardwalkwithraycast", | |
"projectFile": "board-walk-with-raycast.json", | |
"scaleMode": "linear", | |
"sizeOnStartupMode": "adaptWidth", | |
"useExternalSourceFiles": false, | |
"version": "1.0.0", | |
"winExecutableFilename": "", | |
"winExecutableIconFile": "", | |
"name": "Board walk with Raycast", | |
"author": "Paulo Amaral", | |
"windowWidth": 800, | |
"windowHeight": 600, | |
"latestCompilationDirectory": "", | |
"maxFPS": 60, | |
"minFPS": 20, | |
"verticalSync": false, | |
"platformSpecificAssets": {}, | |
"loadingScreen": { | |
"showGDevelopSplash": true | |
}, | |
"extensions": [ | |
{ | |
"name": "BuiltinObject" | |
}, | |
{ | |
"name": "BuiltinAudio" | |
}, | |
{ | |
"name": "BuiltinVariables" | |
}, | |
{ | |
"name": "BuiltinTime" | |
}, | |
{ | |
"name": "BuiltinMouse" | |
}, | |
{ | |
"name": "BuiltinKeyboard" | |
}, | |
{ | |
"name": "BuiltinJoystick" | |
}, | |
{ | |
"name": "BuiltinCamera" | |
}, | |
{ | |
"name": "BuiltinWindow" | |
}, | |
{ | |
"name": "BuiltinFile" | |
}, | |
{ | |
"name": "BuiltinNetwork" | |
}, | |
{ | |
"name": "BuiltinScene" | |
}, | |
{ | |
"name": "BuiltinAdvanced" | |
}, | |
{ | |
"name": "Sprite" | |
}, | |
{ | |
"name": "BuiltinCommonInstructions" | |
}, | |
{ | |
"name": "BuiltinCommonConversions" | |
}, | |
{ | |
"name": "BuiltinStringInstructions" | |
}, | |
{ | |
"name": "BuiltinMathematicalTools" | |
}, | |
{ | |
"name": "BuiltinExternalLayouts" | |
} | |
], | |
"platforms": [ | |
{ | |
"name": "GDevelop JS platform" | |
} | |
], | |
"currentPlatform": "GDevelop JS platform" | |
}, | |
"resources": { | |
"resources": [ | |
{ | |
"alwaysLoaded": false, | |
"file": "https://resources.gdevelop-app.com/examples/platformer/p1_stand.png", | |
"kind": "image", | |
"metadata": "", | |
"name": "https://resources.gdevelop-app.com/examples/platformer/p1_stand.png", | |
"smoothed": true, | |
"userAdded": true | |
}, | |
{ | |
"alwaysLoaded": false, | |
"file": "https://resources.gdevelop-app.com/examples/platformer/brickWall.png", | |
"kind": "image", | |
"metadata": "", | |
"name": "https://resources.gdevelop-app.com/examples/platformer/brickWall.png", | |
"smoothed": true, | |
"userAdded": true | |
} | |
], | |
"resourceFolders": [] | |
}, | |
"objects": [], | |
"objectsGroups": [], | |
"variables": [], | |
"layouts": [ | |
{ | |
"b": 209, | |
"disableInputWhenNotFocused": true, | |
"mangledName": "New_32scene", | |
"name": "New scene", | |
"oglFOV": 90, | |
"oglZFar": 500, | |
"oglZNear": 1, | |
"r": 209, | |
"standardSortMethod": true, | |
"stopSoundsOnStartup": true, | |
"title": "", | |
"v": 209, | |
"uiSettings": { | |
"grid": false, | |
"gridB": 255, | |
"gridG": 180, | |
"gridHeight": 32, | |
"gridOffsetX": 0, | |
"gridOffsetY": 0, | |
"gridR": 158, | |
"gridWidth": 32, | |
"snap": true, | |
"windowMask": false, | |
"zoomFactor": 0.556 | |
}, | |
"objectsGroups": [], | |
"variables": [], | |
"instances": [ | |
{ | |
"angle": 0, | |
"customSize": true, | |
"height": 60, | |
"layer": "", | |
"locked": false, | |
"name": "Player", | |
"width": 47, | |
"x": 70, | |
"y": 55, | |
"zOrder": 2, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 73, | |
"y": 53, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 154, | |
"y": 53, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 233, | |
"y": 60, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 313, | |
"y": 57, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 394, | |
"y": 62, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 471, | |
"y": 59, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 551, | |
"y": 64, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 632, | |
"y": 66, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 712, | |
"y": 69, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 712, | |
"y": 149, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 713, | |
"y": 227, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 635, | |
"y": 229, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 556, | |
"y": 232, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 555, | |
"y": 309, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 480, | |
"y": 232, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 402, | |
"y": 234, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 555, | |
"y": 386, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 553, | |
"y": 458, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 630, | |
"y": 458, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 707, | |
"y": 457, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 478, | |
"y": 384, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 403, | |
"y": 383, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 403, | |
"y": 311, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 480, | |
"y": 313, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 327, | |
"y": 310, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 250, | |
"y": 312, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 173, | |
"y": 310, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 175, | |
"y": 389, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 97, | |
"y": 313, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 96, | |
"y": 388, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 92, | |
"y": 464, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 172, | |
"y": 466, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 251, | |
"y": 464, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 249, | |
"y": 547, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 168, | |
"y": 547, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Block", | |
"width": 0, | |
"x": 90, | |
"y": 549, | |
"zOrder": 1, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "ObjVariableBlockUp", | |
"width": 0, | |
"x": -2, | |
"y": -148, | |
"zOrder": 38, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "ObjVariableBlockDown", | |
"width": 0, | |
"x": -3, | |
"y": -119, | |
"zOrder": 39, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "ObjVariableBlockLeft", | |
"width": 0, | |
"x": -2, | |
"y": -89, | |
"zOrder": 40, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "ObjVariableBlockRight", | |
"width": 0, | |
"x": 0, | |
"y": -59, | |
"zOrder": 41, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
}, | |
{ | |
"angle": 0, | |
"customSize": false, | |
"height": 0, | |
"layer": "", | |
"locked": false, | |
"name": "Info", | |
"width": 0, | |
"x": 44, | |
"y": 115, | |
"zOrder": 43, | |
"numberProperties": [], | |
"stringProperties": [], | |
"initialVariables": [] | |
} | |
], | |
"objects": [ | |
{ | |
"name": "Player", | |
"tags": "", | |
"type": "Sprite", | |
"updateIfNotVisible": false, | |
"variables": [], | |
"behaviors": [], | |
"animations": [ | |
{ | |
"name": "", | |
"useMultipleDirections": false, | |
"directions": [ | |
{ | |
"looping": false, | |
"timeBetweenFrames": 0.08, | |
"sprites": [ | |
{ | |
"hasCustomCollisionMask": false, | |
"image": "https://resources.gdevelop-app.com/examples/platformer/p1_stand.png", | |
"points": [], | |
"originPoint": { | |
"name": "origine", | |
"x": 36, | |
"y": 50 | |
}, | |
"centerPoint": { | |
"automatic": false, | |
"name": "centre", | |
"x": 36, | |
"y": 50 | |
}, | |
"customCollisionMask": [] | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "Block", | |
"tags": "", | |
"type": "Sprite", | |
"updateIfNotVisible": false, | |
"variables": [], | |
"behaviors": [ | |
{ | |
"name": "Draggable", | |
"type": "DraggableBehavior::Draggable" | |
} | |
], | |
"animations": [ | |
{ | |
"name": "", | |
"useMultipleDirections": false, | |
"directions": [ | |
{ | |
"looping": false, | |
"timeBetweenFrames": 0.08, | |
"sprites": [ | |
{ | |
"hasCustomCollisionMask": false, | |
"image": "https://resources.gdevelop-app.com/examples/platformer/brickWall.png", | |
"points": [], | |
"originPoint": { | |
"name": "origine", | |
"x": 37.457, | |
"y": 35.082 | |
}, | |
"centerPoint": { | |
"automatic": true, | |
"name": "centre", | |
"x": 0, | |
"y": 0 | |
}, | |
"customCollisionMask": [] | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"bold": false, | |
"italic": false, | |
"name": "ObjVariableBlockUp", | |
"smoothed": true, | |
"tags": "", | |
"type": "TextObject::Text", | |
"underlined": false, | |
"variables": [], | |
"behaviors": [], | |
"string": "ObjVariableBlockUp", | |
"font": "", | |
"characterSize": 20, | |
"color": { | |
"b": 0, | |
"g": 0, | |
"r": 0 | |
} | |
}, | |
{ | |
"bold": false, | |
"italic": false, | |
"name": "ObjVariableBlockDown", | |
"smoothed": true, | |
"tags": "", | |
"type": "TextObject::Text", | |
"underlined": false, | |
"variables": [], | |
"behaviors": [], | |
"string": "ObjVariableBlockDown", | |
"font": "", | |
"characterSize": 20, | |
"color": { | |
"b": 0, | |
"g": 0, | |
"r": 0 | |
} | |
}, | |
{ | |
"bold": false, | |
"italic": false, | |
"name": "ObjVariableBlockLeft", | |
"smoothed": true, | |
"tags": "", | |
"type": "TextObject::Text", | |
"underlined": false, | |
"variables": [], | |
"behaviors": [], | |
"string": "ObjVariableBlockLeft", | |
"font": "", | |
"characterSize": 20, | |
"color": { | |
"b": 0, | |
"g": 0, | |
"r": 0 | |
} | |
}, | |
{ | |
"bold": false, | |
"italic": false, | |
"name": "ObjVariableBlockRight", | |
"smoothed": true, | |
"tags": "", | |
"type": "TextObject::Text", | |
"underlined": false, | |
"variables": [], | |
"behaviors": [], | |
"string": "ObjVariableBlockRight", | |
"font": "", | |
"characterSize": 20, | |
"color": { | |
"b": 0, | |
"g": 0, | |
"r": 0 | |
} | |
}, | |
{ | |
"bold": false, | |
"italic": false, | |
"name": "Info", | |
"smoothed": true, | |
"tags": "", | |
"type": "TextObject::Text", | |
"underlined": false, | |
"variables": [], | |
"behaviors": [], | |
"string": "Use the arrow keys or WSAD to move around the board. The possible moves are\ndetected in realtime using the Raycast condition. Blocks have Draggable\nbehaviour, so you can move them to modify the level during the gameplay.", | |
"font": "", | |
"characterSize": 15, | |
"color": { | |
"b": 0, | |
"g": 0, | |
"r": 0 | |
} | |
} | |
], | |
"events": [ | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Comment", | |
"color": { | |
"b": 109, | |
"g": 230, | |
"r": 255, | |
"textB": 0, | |
"textG": 0, | |
"textR": 0 | |
}, | |
"comment": "WALKING AN ARBITRARY BOARD\n\nThis example shows how to make the player walk through a board of tiles using the arrow keys. Steps will move the player to the centre of the next tile, as in traditional board games.\nThe tiles don't need to be perfectly aligned nor spaced.\n", | |
"comment2": "" | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Comment", | |
"color": { | |
"b": 109, | |
"g": 230, | |
"r": 255, | |
"textB": 0, | |
"textG": 0, | |
"textR": 0 | |
}, | |
"comment": "The text objects named \"ObjVariableBlock...\" are used to store a reference to the blocks where the player can move to. Think of them like variables that can store objects, instead of just text or number. We clean them up every frame before detecting the possible directions of movement.", | |
"comment2": "" | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "DepartScene" | |
}, | |
"parameters": [ | |
"" | |
], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Cache" | |
}, | |
"parameters": [ | |
"ObjVariableBlockUp" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Cache" | |
}, | |
"parameters": [ | |
"ObjVariableBlockDown" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Cache" | |
}, | |
"parameters": [ | |
"ObjVariableBlockLeft" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Cache" | |
}, | |
"parameters": [ | |
"ObjVariableBlockRight" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Opacity" | |
}, | |
"parameters": [ | |
"Block", | |
"=", | |
"100" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::RemoveAllLinksOf" | |
}, | |
"parameters": [ | |
"", | |
"ObjVariableBlockUp" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::RemoveAllLinksOf" | |
}, | |
"parameters": [ | |
"", | |
"ObjVariableBlockDown" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::RemoveAllLinksOf" | |
}, | |
"parameters": [ | |
"", | |
"ObjVariableBlockLeft" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::RemoveAllLinksOf" | |
}, | |
"parameters": [ | |
"", | |
"ObjVariableBlockRight" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Comment", | |
"color": { | |
"b": 109, | |
"g": 230, | |
"r": 255, | |
"textB": 0, | |
"textG": 0, | |
"textR": 0 | |
}, | |
"comment": "The Raycast condition will shot an invisible ray from the Player origin point (X,Y), at a specific angle, detecting Block objects it hits.\n\nRight = 0 degrees\nDown = 90 degrees\nLeft = 180 degrees\nUp = 270 degrees\n\nThe \"Ray Maximum Distance\" it will travel is the size of 1 block (double click the condition to view this option, as well as the angle).\nThe condition is inverted to detect the farthest Block within \"Ray Maximum Distance\" pixels (not the closest).\nThere are 4 rays, one for each direction (Up, Down, Left and Right).\n\nThe blocks detected by the Raycasts will have opacity restored to show which ones they are.\n\n* When the player can't move in a particular direction, the block detected by the ray of that direction will be the current one where the player is. The inverted collision condition together with each Raycast solves this issue.", | |
"comment2": "" | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Comment", | |
"color": { | |
"b": 109, | |
"g": 230, | |
"r": 255, | |
"textB": 0, | |
"textG": 0, | |
"textR": 0 | |
}, | |
"comment": "The Block detected by each Raycast will be linked to each Text object \"ObjVariableBlock...\" so they can be used for movement later.", | |
"comment2": "" | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": true, | |
"value": "Raycast" | |
}, | |
"parameters": [ | |
"Block", | |
"Player.X()", | |
"Player.Y()", | |
"270", | |
"Block.Height()", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": true, | |
"value": "CollisionNP" | |
}, | |
"parameters": [ | |
"Block", | |
"Player", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::LinkObjects" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockUp" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Opacity" | |
}, | |
"parameters": [ | |
"Block", | |
"=", | |
"250" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": true, | |
"value": "Raycast" | |
}, | |
"parameters": [ | |
"Block", | |
"Player.X()", | |
"Player.Y()", | |
"90", | |
"Block.Height()", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": true, | |
"value": "CollisionNP" | |
}, | |
"parameters": [ | |
"Block", | |
"Player", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::LinkObjects" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockDown" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Opacity" | |
}, | |
"parameters": [ | |
"Block", | |
"=", | |
"250" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": true, | |
"value": "Raycast" | |
}, | |
"parameters": [ | |
"Block", | |
"Player.X()", | |
"Player.Y()", | |
"180", | |
"Block.Width()", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": true, | |
"value": "CollisionNP" | |
}, | |
"parameters": [ | |
"Block", | |
"Player", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::LinkObjects" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockLeft" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Opacity" | |
}, | |
"parameters": [ | |
"Block", | |
"=", | |
"250" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": true, | |
"value": "Raycast" | |
}, | |
"parameters": [ | |
"Block", | |
"Player.X()", | |
"Player.Y()", | |
"0", | |
"Block.Width()", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": true, | |
"value": "CollisionNP" | |
}, | |
"parameters": [ | |
"Block", | |
"Player", | |
"", | |
"", | |
"" | |
], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::LinkObjects" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockRight" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "Opacity" | |
}, | |
"parameters": [ | |
"Block", | |
"=", | |
"250" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Comment", | |
"color": { | |
"b": 109, | |
"g": 230, | |
"r": 255, | |
"textB": 0, | |
"textG": 0, | |
"textR": 0 | |
}, | |
"comment": "When a key is pressed, check what is the Block the Player can move to (it was linked by the Raycast to the Text object with name \"ObjVariableBlock...\") and move the Player to it.", | |
"comment2": "" | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Or" | |
}, | |
"parameters": [], | |
"subInstructions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"Right" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"d" | |
], | |
"subInstructions": [] | |
} | |
] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::PickObjectsLinkedTo" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockRight" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Once" | |
}, | |
"parameters": [], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "MettreXY" | |
}, | |
"parameters": [ | |
"Player", | |
"=", | |
"Block.X()", | |
"=", | |
"Block.Y()" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Or" | |
}, | |
"parameters": [], | |
"subInstructions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"Up" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"w" | |
], | |
"subInstructions": [] | |
} | |
] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::PickObjectsLinkedTo" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockUp" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Once" | |
}, | |
"parameters": [], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "MettreXY" | |
}, | |
"parameters": [ | |
"Player", | |
"=", | |
"Block.X()", | |
"=", | |
"Block.Y()" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Or" | |
}, | |
"parameters": [], | |
"subInstructions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"Down" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"s" | |
], | |
"subInstructions": [] | |
} | |
] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::PickObjectsLinkedTo" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockDown" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Once" | |
}, | |
"parameters": [], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "MettreXY" | |
}, | |
"parameters": [ | |
"Player", | |
"=", | |
"Block.X()", | |
"=", | |
"Block.Y()" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Standard", | |
"conditions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Or" | |
}, | |
"parameters": [], | |
"subInstructions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"Left" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "KeyPressed" | |
}, | |
"parameters": [ | |
"", | |
"a" | |
], | |
"subInstructions": [] | |
} | |
] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "LinkedObjects::PickObjectsLinkedTo" | |
}, | |
"parameters": [ | |
"", | |
"Block", | |
"ObjVariableBlockLeft" | |
], | |
"subInstructions": [] | |
}, | |
{ | |
"type": { | |
"inverted": false, | |
"value": "BuiltinCommonInstructions::Once" | |
}, | |
"parameters": [], | |
"subInstructions": [] | |
} | |
], | |
"actions": [ | |
{ | |
"type": { | |
"inverted": false, | |
"value": "MettreXY" | |
}, | |
"parameters": [ | |
"Player", | |
"=", | |
"Block.X()", | |
"=", | |
"Block.Y()" | |
], | |
"subInstructions": [] | |
} | |
], | |
"events": [] | |
}, | |
{ | |
"disabled": false, | |
"folded": false, | |
"type": "BuiltinCommonInstructions::Comment", | |
"color": { | |
"b": 109, | |
"g": 230, | |
"r": 255, | |
"textB": 0, | |
"textG": 0, | |
"textR": 0 | |
}, | |
"comment": "When the loop will run again, all links will be discarded, re-detected and re-linked.", | |
"comment2": "" | |
} | |
], | |
"layers": [ | |
{ | |
"name": "", | |
"visibility": true, | |
"cameras": [ | |
{ | |
"defaultSize": true, | |
"defaultViewport": true, | |
"height": 0, | |
"viewportBottom": 1, | |
"viewportLeft": 0, | |
"viewportRight": 1, | |
"viewportTop": 0, | |
"width": 0 | |
} | |
], | |
"effects": [] | |
} | |
], | |
"behaviorsSharedData": [] | |
} | |
], | |
"externalEvents": [], | |
"eventsFunctionsExtensions": [], | |
"externalLayouts": [], | |
"externalSourceFiles": [] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment