{ "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": "p1_stand.png", "kind": "image", "metadata": "", "name": "p1_stand.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "brickWall.png", "kind": "image", "metadata": "", "name": "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": "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": "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": [] }