diff --git a/examples/dynamic-tilemap/Dynamic tile map.json b/examples/dynamic-tilemap/Dynamic tile map.json new file mode 100644 index 000000000..855a3fde1 --- /dev/null +++ b/examples/dynamic-tilemap/Dynamic tile map.json @@ -0,0 +1,1433 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 273, + "major": 5, + "minor": 6, + "revision": 0 + }, + "initialGDVersion": "5.6.273", + "properties": { + "adaptGameResolutionAtRuntime": true, + "antialiasingMode": "MSAA", + "antialisingEnabledOnMobile": false, + "folderProject": false, + "orientation": "landscape", + "packageName": "com.example.gamename", + "pixelsRounding": false, + "projectUuid": "c7311e07-8c92-4645-bfb5-f167583ea114", + "scaleMode": "linear", + "sizeOnStartupMode": "adaptWidth", + "templateSlug": "", + "version": "1.0.0", + "name": "Dynamic tile map", + "description": "", + "author": "", + "windowWidth": 1280, + "windowHeight": 720, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 20, + "verticalSync": false, + "platformSpecificAssets": {}, + "loadingScreen": { + "backgroundColor": 0, + "backgroundFadeInDuration": 0.2, + "backgroundImageResourceName": "", + "gdevelopLogoStyle": "light", + "logoAndProgressFadeInDuration": 0.2, + "logoAndProgressLogoFadeInDelay": 0, + "minDuration": 1.5, + "progressBarColor": 16777215, + "progressBarHeight": 20, + "progressBarMaxWidth": 200, + "progressBarMinWidth": 40, + "progressBarWidthPercent": 30, + "showGDevelopSplash": true, + "showProgressBar": true + }, + "watermark": { + "placement": "bottom-left", + "showWatermark": true + }, + "authorIds": [], + "authorUsernames": [], + "categories": [], + "playableDevices": [], + "extensionProperties": [], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "file": "assets/Atlas.png", + "kind": "image", + "metadata": "{\"extension\":\".png\",\"pskl\":{},\"localFilePath\":\"assets/Atlas.png\"}", + "name": "Tileset", + "smoothed": false, + "userAdded": false + }, + { + "file": "assets/Cursor.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "Cursor", + "smoothed": false, + "userAdded": false + }, + { + "file": "assets/Character.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "Character", + "smoothed": false, + "userAdded": false + }, + { + "disablePreload": false, + "file": "assets/ExternalTileMap.json", + "kind": "tilemap", + "metadata": "", + "name": "assets/ExternalTileMap.json", + "userAdded": false + } + ] + }, + "objects": [], + "objectsFolderStructure": { + "folderName": "__ROOT" + }, + "objectsGroups": [], + "variables": [], + "layouts": [ + { + "b": 39, + "disableInputWhenNotFocused": true, + "mangledName": "Tile_32map", + "name": "Tile map", + "r": 39, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 39, + "uiSettings": { + "grid": false, + "gridType": "rectangular", + "gridWidth": 32, + "gridHeight": 32, + "gridDepth": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridOffsetZ": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": false, + "zoomFactor": 0.737081631799403, + "windowMask": false, + "selectedLayer": "", + "gameEditorMode": "instances-editor" + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 704, + "keepRatio": true, + "layer": "", + "name": "TileMap", + "persistentUuid": "f061a843-742a-43a3-b769-cf9c785e1d69", + "width": 1280, + "x": 0, + "y": 17, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [ + { + "name": "tilemap", + "value": "{\"tileWidth\":16,\"tileHeight\":16,\"dimX\":20,\"dimY\":11,\"layers\":[{\"id\":0,\"alpha\":1,\"tiles\":[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]}]}" + } + ], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 56, + "keepRatio": true, + "layer": "", + "name": "Character", + "persistentUuid": "9a5311fa-707e-460c-bd60-345e351cd387", + "width": 56, + "x": 576, + "y": 347, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 64, + "keepRatio": true, + "layer": "", + "name": "Cursor", + "persistentUuid": "2f3968f2-5ad8-424f-bc07-ca6c8a8d272c", + "width": 64, + "x": 66, + "y": -107, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "assetStoreId": "", + "name": "TileMap", + "persistentUuid": "2079bece-24bb-4414-aed8-5cd2e7eea037", + "type": "TileMap::SimpleTileMap", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior", + "canBeGrabbed": false, + "platformType": "NormalPlatform", + "yGrabOffset": 0 + } + ], + "content": { + "atlasImage": "Tileset", + "rowCount": 2, + "columnCount": 2, + "tileSize": 16, + "tilesWithHitBox": "3,2,1" + } + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Character", + "persistentUuid": "40469988-a64c-4a92-8e9d-caf7e6310adc", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "PlatformerObject", + "type": "PlatformBehavior::PlatformerObjectBehavior", + "acceleration": 1500, + "canGoDownFromJumpthru": true, + "canGrabPlatforms": false, + "canGrabWithoutMoving": true, + "deceleration": 1500, + "gravity": 1000, + "ignoreDefaultControls": false, + "jumpSpeed": 600, + "jumpSustainTime": 0.2, + "ladderClimbingSpeed": 150, + "maxFallingSpeed": 700, + "maxSpeed": 250, + "slopeMaxAngle": 60, + "useLegacyTrajectory": false, + "useRepeatedJump": false, + "xGrabTolerance": 10, + "yGrabOffset": 0 + } + ], + "animations": [ + { + "name": "Character", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Character", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Cursor", + "persistentUuid": "7f8d21ea-65fb-4fb1-a620-fac6ea7ee48c", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Cursor", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Cursor", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 16, + "y": 0 + }, + { + "x": 16, + "y": 16 + }, + { + "x": 0, + "y": 16 + } + ] + ] + } + ] + } + ] + } + ] + } + ], + "objectsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "objectName": "TileMap" + }, + { + "objectName": "Character" + }, + { + "objectName": "Cursor" + } + ] + }, + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneJustBegins" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "DebuggerTools::EnableDebugDraw" + }, + "parameters": [ + "", + "", + "", + "no", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Cursor", + "=", + "CursorX()", + "=", + "CursorY()" + ] + }, + { + "type": { + "value": "TileMapTools::SnapOnTile" + }, + "parameters": [ + "", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonFromTextPressed" + }, + "parameters": [ + "", + "\"Left\"" + ] + }, + { + "type": { + "value": "TileMapTools::TileIdAtObject" + }, + "parameters": [ + "", + "<=", + "0", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TileMapTools::SetTileIdAtObject" + }, + "parameters": [ + "", + "=", + "RandomInRange(2, 3)", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Character", + "Cursor", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Character", + "=", + "Cursor.CenterY() - Character.Height()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonFromTextPressed" + }, + "parameters": [ + "", + "\"Right\"" + ] + }, + { + "type": { + "value": "TileMapTools::TileIdAtObject" + }, + "parameters": [ + "", + ">", + "1", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TileMapTools::RemoveTileAtObject" + }, + "parameters": [ + "", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ] + } + ], + "layers": [ + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera2DPlaneMaxDrawingDistance": 5000, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 3, + "cameraType": "", + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [ + { + "effectType": "Scene3D::HemisphereLight", + "name": "3D Ambient Hemisphere Light", + "doubleParameters": { + "elevation": 40, + "intensity": 0.33, + "rotation": 300 + }, + "stringParameters": { + "groundColor": "127;127;127", + "skyColor": "255;255;255", + "top": "Z+" + }, + "booleanParameters": {} + }, + { + "effectType": "Scene3D::DirectionalLight", + "name": "3D Sun Light", + "doubleParameters": { + "distanceFromCamera": 1500, + "elevation": 40, + "frustumSize": 4000, + "intensity": 0.75, + "minimumShadowBias": 0, + "rotation": 300 + }, + "stringParameters": { + "color": "255;255;255", + "shadowQuality": "medium", + "top": "Z+" + }, + "booleanParameters": { + "isCastingShadow": true + } + } + ] + } + ], + "behaviorsSharedData": [ + { + "name": "Animation", + "type": "AnimatableCapability::AnimatableBehavior" + }, + { + "name": "Effect", + "type": "EffectCapability::EffectBehavior" + }, + { + "name": "Flippable", + "type": "FlippableCapability::FlippableBehavior" + }, + { + "name": "Opacity", + "type": "OpacityCapability::OpacityBehavior" + }, + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior" + }, + { + "name": "PlatformerObject", + "type": "PlatformBehavior::PlatformerObjectBehavior" + }, + { + "name": "Resizable", + "type": "ResizableCapability::ResizableBehavior" + }, + { + "name": "Scale", + "type": "ScalableCapability::ScalableBehavior" + }, + { + "name": "TileMap", + "type": "TileMap::TileMapBehavior" + } + ] + }, + { + "b": 39, + "disableInputWhenNotFocused": true, + "mangledName": "External_32tile_32map", + "name": "External tile map", + "r": 39, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 39, + "uiSettings": { + "grid": false, + "gridType": "rectangular", + "gridWidth": 32, + "gridHeight": 32, + "gridDepth": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridOffsetZ": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": false, + "zoomFactor": 0.737081631799403, + "windowMask": false, + "selectedLayer": "", + "gameEditorMode": "instances-editor" + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 56, + "keepRatio": true, + "layer": "", + "name": "Character", + "persistentUuid": "9a5311fa-707e-460c-bd60-345e351cd387", + "width": 56, + "x": 576, + "y": 347, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 64, + "keepRatio": true, + "layer": "", + "name": "Cursor", + "persistentUuid": "2f3968f2-5ad8-424f-bc07-ca6c8a8d272c", + "width": 64, + "x": 66, + "y": -107, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 704, + "keepRatio": true, + "layer": "", + "name": "TileMap", + "persistentUuid": "b083c310-ef54-4bc6-be47-b61c9c95aa12", + "width": 1280, + "x": -2, + "y": 19, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Character", + "persistentUuid": "40469988-a64c-4a92-8e9d-caf7e6310adc", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "PlatformerObject", + "type": "PlatformBehavior::PlatformerObjectBehavior", + "acceleration": 1500, + "canGoDownFromJumpthru": true, + "canGrabPlatforms": false, + "canGrabWithoutMoving": true, + "deceleration": 1500, + "gravity": 1000, + "ignoreDefaultControls": false, + "jumpSpeed": 600, + "jumpSustainTime": 0.2, + "ladderClimbingSpeed": 150, + "maxFallingSpeed": 700, + "maxSpeed": 250, + "slopeMaxAngle": 60, + "useLegacyTrajectory": false, + "useRepeatedJump": false, + "xGrabTolerance": 10, + "yGrabOffset": 0 + } + ], + "animations": [ + { + "name": "Character", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Character", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Cursor", + "persistentUuid": "7f8d21ea-65fb-4fb1-a620-fac6ea7ee48c", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Cursor", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Cursor", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 16, + "y": 0 + }, + { + "x": 16, + "y": 16 + }, + { + "x": 0, + "y": 16 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "name": "TileMap", + "persistentUuid": "cf6ff70b-2d1e-4008-b594-4370f7419f8d", + "type": "TileMap::TileMap", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior", + "canBeGrabbed": false, + "platformType": "NormalPlatform", + "yGrabOffset": 0 + } + ], + "content": { + "tilemapJsonFile": "assets/ExternalTileMap.json", + "tilesetJsonFile": "", + "tilemapAtlasImage": "Tileset", + "displayMode": "visible", + "layerIndex": 0, + "levelIndex": 0, + "animationSpeedScale": 1, + "animationFps": 4, + "collisionMaskTag": "", + "isCollisionMaskEnabled": true + } + } + ], + "objectsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "objectName": "TileMap" + }, + { + "objectName": "Character" + }, + { + "objectName": "Cursor" + } + ] + }, + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneJustBegins" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "DebuggerTools::EnableDebugDraw" + }, + "parameters": [ + "", + "", + "", + "no", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Cursor", + "=", + "CursorX()", + "=", + "CursorY()" + ] + }, + { + "type": { + "value": "TileMapTools::SnapOnTile" + }, + "parameters": [ + "", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonFromTextPressed" + }, + "parameters": [ + "", + "\"Left\"" + ] + }, + { + "type": { + "value": "TileMapTools::TileIdAtObject" + }, + "parameters": [ + "", + "<=", + "0", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TileMapTools::SetTileIdAtObject" + }, + "parameters": [ + "", + "=", + "RandomInRange(2, 3)", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Character", + "Cursor", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Character", + "=", + "Cursor.CenterY() - Character.Height()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonFromTextPressed" + }, + "parameters": [ + "", + "\"Right\"" + ] + }, + { + "type": { + "value": "TileMapTools::TileIdAtObject" + }, + "parameters": [ + "", + ">", + "1", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TileMapTools::RemoveTileAtObject" + }, + "parameters": [ + "", + "Cursor", + "TileMap", + "TileMap", + "" + ] + } + ] + } + ], + "layers": [ + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera2DPlaneMaxDrawingDistance": 5000, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 3, + "cameraType": "", + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [ + { + "effectType": "Scene3D::HemisphereLight", + "name": "3D Ambient Hemisphere Light", + "doubleParameters": { + "elevation": 40, + "intensity": 0.33, + "rotation": 300 + }, + "stringParameters": { + "groundColor": "127;127;127", + "skyColor": "255;255;255", + "top": "Z+" + }, + "booleanParameters": {} + }, + { + "effectType": "Scene3D::DirectionalLight", + "name": "3D Sun Light", + "doubleParameters": { + "distanceFromCamera": 1500, + "elevation": 40, + "frustumSize": 4000, + "intensity": 0.75, + "minimumShadowBias": 0, + "rotation": 300 + }, + "stringParameters": { + "color": "255;255;255", + "shadowQuality": "medium", + "top": "Z+" + }, + "booleanParameters": { + "isCastingShadow": true + } + } + ] + } + ], + "behaviorsSharedData": [ + { + "name": "Animation", + "type": "AnimatableCapability::AnimatableBehavior" + }, + { + "name": "Effect", + "type": "EffectCapability::EffectBehavior" + }, + { + "name": "Flippable", + "type": "FlippableCapability::FlippableBehavior" + }, + { + "name": "Opacity", + "type": "OpacityCapability::OpacityBehavior" + }, + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior" + }, + { + "name": "PlatformerObject", + "type": "PlatformBehavior::PlatformerObjectBehavior" + }, + { + "name": "Resizable", + "type": "ResizableCapability::ResizableBehavior" + }, + { + "name": "Scale", + "type": "ScalableCapability::ScalableBehavior" + }, + { + "name": "TileMap", + "type": "TileMap::TileMapBehavior" + } + ] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "", + "dimension": "", + "extensionNamespace": "", + "fullName": "", + "gdevelopVersion": "", + "helpPath": "", + "iconUrl": "", + "name": "TileMapTools", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "globalVariables": [], + "sceneVariables": [], + "eventsFunctions": [ + { + "fullName": "Snap on tile", + "functionType": "Action", + "name": "SnapOnTile", + "sentence": "Snap _PARAM1_ on nearest tile of _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "GridX", + "=", + "Map.TileMap::GridX(Object.CenterX(), Object.CenterY())" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "GridY", + "=", + "Map.TileMap::GridY(Object.CenterX(), Object.CenterY())" + ] + }, + { + "type": { + "value": "SetCenterX" + }, + "parameters": [ + "Object", + "=", + "Map.TileMap::TileCenterX(GridX, GridY)" + ] + }, + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Object", + "=", + "Map.TileMap::TileCenterY(GridX, GridY)" + ] + } + ], + "variables": [ + { + "name": "GridX", + "type": "number", + "value": 0 + }, + { + "name": "GridY", + "type": "number", + "value": 0 + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "Tile map", + "name": "Map", + "type": "objectList" + }, + { + "description": "Tile map capability", + "name": "TileMap", + "supplementaryInformation": "TileMap::TileMapBehavior", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the id of the tile at the object center.", + "fullName": "Tile at object", + "functionType": "ExpressionAndCondition", + "name": "TileIdAtObject", + "sentence": "the tile id in _PARAM2_ at _PARAM1_ center", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Map.TileMap::TileIdAtPosition(Object.CenterX(), Object.CenterY())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "Tile map", + "name": "Map", + "type": "objectList" + }, + { + "description": "Tile map capability", + "name": "TileMap", + "supplementaryInformation": "TileMap::TileMapBehavior", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "TileIdAtObject", + "name": "SetTileIdAtObject", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TileMap::TileMapBehavior::SetTileIdAtPosition" + }, + "parameters": [ + "Map", + "TileMap", + "=", + "RandomInRange(2, 3)", + "Object.CenterX()", + "Object.CenterY()" + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Remove the tile at the object center.", + "fullName": "Remove tile at object", + "functionType": "Action", + "name": "RemoveTileAtObject", + "sentence": "Remove the tile in _PARAM2_ at _PARAM1_ center", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TileMap::TileMapBehavior::RemoveTileAtPosition" + }, + "parameters": [ + "Map", + "TileMap", + "Object.CenterX()", + "Object.CenterY()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "Tile map", + "name": "Map", + "type": "objectList" + }, + { + "description": "Tile map capability", + "name": "TileMap", + "supplementaryInformation": "TileMap::TileMapBehavior", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "SnapOnTile" + }, + { + "functionName": "RemoveTileAtObject" + }, + { + "functionName": "TileIdAtObject" + }, + { + "functionName": "SetTileIdAtObject" + } + ] + }, + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] + } + ], + "externalLayouts": [] +} diff --git a/examples/dynamic-tilemap/assets/Atlas.png b/examples/dynamic-tilemap/assets/Atlas.png new file mode 100644 index 000000000..42246f3a0 Binary files /dev/null and b/examples/dynamic-tilemap/assets/Atlas.png differ diff --git a/examples/dynamic-tilemap/assets/Character.png b/examples/dynamic-tilemap/assets/Character.png new file mode 100644 index 000000000..9adb32d44 Binary files /dev/null and b/examples/dynamic-tilemap/assets/Character.png differ diff --git a/examples/dynamic-tilemap/assets/Cursor.png b/examples/dynamic-tilemap/assets/Cursor.png new file mode 100644 index 000000000..a061a6cf3 Binary files /dev/null and b/examples/dynamic-tilemap/assets/Cursor.png differ diff --git a/examples/dynamic-tilemap/assets/ExternalTileMap.json b/examples/dynamic-tilemap/assets/ExternalTileMap.json new file mode 100644 index 000000000..fedd3701f --- /dev/null +++ b/examples/dynamic-tilemap/assets/ExternalTileMap.json @@ -0,0 +1,122 @@ +{ "compressionlevel":-1, + "height":11, + "infinite":false, + "layers":[ + { + "compression":"zlib", + "data":"eJxjYmBgYKIyphYYNW9kmMdMJUwr86iJARAfAOE=", + "encoding":"base64", + "height":11, + "id":1, + "name":"Calque de Tuiles 1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":20, + "x":0, + "y":0 + }], + "nextlayerid":2, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.12.2", + "tileheight":16, + "tilesets":[ + { + "columns":2, + "firstgid":1, + "image":"Atlas.png", + "imageheight":32, + "imagewidth":32, + "margin":0, + "name":"Atlas", + "spacing":0, + "tilecount":4, + "tileheight":16, + "tiles":[ + { + "id":1, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":16, + "id":2, + "name":"", + "opacity":1, + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":2, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "opacity":1, + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":3, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "opacity":1, + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }], + "tilewidth":16 + }], + "tilewidth":16, + "type":"map", + "version":"1.10", + "width":20 +} \ No newline at end of file diff --git a/examples/platformer-with-tilemap/platformer-with-tilemap.json b/examples/platformer-with-tilemap/platformer-with-tilemap.json index 56564a346..80415d9a5 100644 --- a/examples/platformer-with-tilemap/platformer-with-tilemap.json +++ b/examples/platformer-with-tilemap/platformer-with-tilemap.json @@ -1,9 +1,9 @@ { "firstLayout": "", "gdVersion": { - "build": 99, - "major": 4, - "minor": 0, + "build": 273, + "major": 5, + "minor": 6, "revision": 0 }, "properties": { @@ -18,7 +18,7 @@ "scaleMode": "linear", "sizeOnStartupMode": "adaptWidth", "templateSlug": "", - "useExternalSourceFiles": false, + "useDeprecatedZeroAsDefaultStringVariable": true, "version": "1.0.0", "name": "Platformer with tile map", "description": "Shows how to create a pixel-perfect platformer game with a Tilemap object for designing the level.", @@ -69,7 +69,6 @@ "resources": { "resources": [ { - "alwaysLoaded": false, "file": "assets/cavesofgallet_tiles.png", "kind": "image", "metadata": "", @@ -86,7 +85,6 @@ "userAdded": true }, { - "alwaysLoaded": false, "file": "assets/RedMarker-1.png", "kind": "image", "metadata": "", @@ -95,7 +93,6 @@ "userAdded": false }, { - "alwaysLoaded": false, "file": "assets/Ladder-1.png", "kind": "image", "metadata": "", @@ -104,7 +101,6 @@ "userAdded": false }, { - "alwaysLoaded": false, "file": "assets/JumpThru-1.png", "kind": "image", "metadata": "", @@ -113,7 +109,6 @@ "userAdded": true }, { - "alwaysLoaded": false, "file": "assets/hero.png", "kind": "image", "metadata": "", @@ -121,8 +116,7 @@ "smoothed": false, "userAdded": false } - ], - "resourceFolders": [] + ] }, "objects": [], "objectsFolderStructure": { @@ -146,13 +140,17 @@ "gridType": "rectangular", "gridWidth": 8, "gridHeight": 8, + "gridDepth": 32, "gridOffsetX": 0, "gridOffsetY": 0, + "gridOffsetZ": 0, "gridColor": 10401023, - "gridAlpha": 0.8, + "gridAlpha": 0.2, "snap": true, - "zoomFactor": 2, - "windowMask": false + "zoomFactor": 2.880471808612115, + "windowMask": false, + "selectedLayer": "", + "gameEditorMode": "instances-editor" }, "objectsGroups": [], "variables": [], @@ -187,21 +185,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "Collision", - "name": "Platform", - "persistentUuid": "c13e0b5c-40fe-4f3f-bba7-58a55ee3829b", - "width": 0, - "x": -40, - "y": -56, - "zOrder": 6, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 0, "customSize": false, @@ -237,10 +220,19 @@ { "assetStoreId": "", "name": "PlatformerMap", + "persistentUuid": "b2eeaf59-8fe1-4660-9639-bddb7ee1a239", "type": "TileMap::TileMap", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior", + "canBeGrabbed": false, + "platformType": "NormalPlatform", + "yGrabOffset": 0 + } + ], "content": { "tilemapJsonFile": "my platformer map.json", "tilesetJsonFile": "", @@ -248,7 +240,9 @@ "displayMode": "visible", "layerIndex": 0, "animationSpeedScale": 1, - "animationFps": 4 + "animationFps": 4, + "collisionMaskTag": "Platform", + "isCollisionMaskEnabled": true } }, { @@ -393,33 +387,6 @@ } ] }, - { - "assetStoreId": "", - "name": "Platform", - "type": "TileMap::CollisionMask", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "Platform", - "type": "PlatformBehavior::PlatformBehavior", - "canBeGrabbed": false, - "platformType": "NormalPlatform", - "yGrabOffset": 0 - } - ], - "content": { - "tilemapJsonFile": "my platformer map.json", - "tilesetJsonFile": "", - "collisionMaskTag": "Platform", - "debugMode": false, - "fillColor": "208;2;27", - "outlineColor": "208;2;27", - "fillOpacity": 64, - "outlineOpacity": 128, - "outlineSize": 1 - } - }, { "assetStoreId": "", "name": "Ladder", @@ -450,6 +417,7 @@ { "assetStoreId": "", "name": "JumpThru", + "persistentUuid": "ca4f918b-53c4-467c-844d-35ade70a7e9d", "type": "TileMap::CollisionMask", "variables": [], "effects": [], @@ -484,9 +452,6 @@ { "objectName": "Hero" }, - { - "objectName": "Platform" - }, { "objectName": "Ladder" }, @@ -735,9 +700,11 @@ "ambientLightColorB": 9241144, "ambientLightColorG": 6042768, "ambientLightColorR": 9354592, + "camera2DPlaneMaxDrawingDistance": 5000, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, + "cameraType": "perspective", "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, @@ -751,9 +718,11 @@ "ambientLightColorB": 1702453632, "ambientLightColorG": 0, "ambientLightColorR": -1, + "camera2DPlaneMaxDrawingDistance": 5000, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, + "cameraType": "perspective", "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, @@ -767,9 +736,11 @@ "ambientLightColorB": 0, "ambientLightColorG": 0, "ambientLightColorR": 0, + "camera2DPlaneMaxDrawingDistance": 5000, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, + "cameraType": "perspective", "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, @@ -792,6 +763,22 @@ } ], "behaviorsSharedData": [ + { + "name": "Animation", + "type": "AnimatableCapability::AnimatableBehavior" + }, + { + "name": "Effect", + "type": "EffectCapability::EffectBehavior" + }, + { + "name": "Flippable", + "type": "FlippableCapability::FlippableBehavior" + }, + { + "name": "Opacity", + "type": "OpacityCapability::OpacityBehavior" + }, { "name": "PixelPerfectPlatformerCharacter", "type": "PixelPerfectMovement::PixelPerfectPlatformerCharacter" @@ -804,6 +791,14 @@ "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, + { + "name": "Resizable", + "type": "ResizableCapability::ResizableBehavior" + }, + { + "name": "Scale", + "type": "ScalableCapability::ScalableBehavior" + }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" @@ -820,8 +815,10 @@ { "author": "", "category": "", + "dimension": "", "extensionNamespace": "", "fullName": "Copy camera settings", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWxheWVycy10cmlwbGUtb3V0bGluZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAxNi41NEwxOS4zNyAxMC44TDIxIDEyLjA3TDEyIDE5LjA3TDMgMTIuMDdMNC42MiAxMC44MUwxMiAxNi41NE0xMiAxNEwzIDdMMTIgMEwyMSA3TDEyIDE0TTEyIDIuNTNMNi4yNiA3TDEyIDExLjQ3TDE3Ljc0IDdMMTIgMi41M00xMiAyMS40N0wxOS4zNyAxNS43M0wyMSAxN0wxMiAyNEwzIDE3TDQuNjIgMTUuNzRMMTIgMjEuNDciIC8+PC9zdmc+", "name": "CopyCameraSettings", @@ -854,6 +851,8 @@ "gqDaZjCfevOOxBYkK6zlhtZnXCg1" ], "dependencies": [], + "globalVariables": [], + "sceneVariables": [], "eventsFunctions": [ { "description": "Copy camera settings of a layer and apply them to another layer.", @@ -1023,14 +1022,24 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "CopyCameraSettings" + } + ] + }, "eventsBasedBehaviors": [], "eventsBasedObjects": [] }, { "author": "", "category": "Camera", + "dimension": "", "extensionNamespace": "", "fullName": "Smooth Camera", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQsMTNoLTZjLTEuMSwwLTItMC45LTItMlY1YzAtMS4xLDAuOS0yLDItMmg2YzEuMSwwLDIsMC45LDIsMnY2QzI2LDEyLjEsMjUuMSwxMywyNCwxM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNiw4djEwYzAsMS4xLTAuOSwyLTIsMkg4Yy0xLjEsMC0yLTAuOS0yLTJWOGMwLTEuMSwwLjktMiwyLTJoOCIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjEiIGN5PSI4IiByPSIyIi8+DQo8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSIxMSIgY3k9IjE2IiByPSIxIi8+DQo8cmVjdCB4PSI5IiB5PSI5IiBjbGFzcz0ic3QwIiB3aWR0aD0iNCIgaGVpZ2h0PSIzIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSIyMSwyOSAyMSwyOSAxMSwyOSAxMSwyOSAiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjE4LDIwIDE4LDI5IDE0LDI5IDE0LDIwICIvPg0KPHJlY3QgeD0iNyIgeT0iMyIgY2xhc3M9InN0MCIgd2lkdGg9IjQiIGhlaWdodD0iMyIvPg0KPC9zdmc+DQo=", "name": "SmoothCamera", @@ -1064,13 +1073,21 @@ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], + "globalVariables": [], + "sceneVariables": [], "eventsFunctions": [], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT" + }, "eventsBasedBehaviors": [ { "description": "Smoothly scroll to follow an object.", "fullName": "Smooth Camera", + "helpPath": "", + "iconUrl": "", "name": "SmoothCamera", "objectType": "", + "previewIconUrl": "", "eventsFunctions": [ { "fullName": "", @@ -2991,6 +3008,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetX", + "group": "Camera configuration", "name": "SetOffsetXOp", "sentence": "", "events": [ @@ -3132,6 +3150,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetY", + "group": "Camera configuration", "name": "SetOffsetYOp", "sentence": "", "events": [ @@ -5545,65 +5564,180 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "onCreated" + }, + { + "functionName": "doStepPreEvents" + }, + { + "functionName": "MoveCameraCloser" + }, + { + "functionName": "DoMoveCameraCloser" + }, + { + "functionName": "WaitAndCatchUp" + }, + { + "functionName": "DrawDebug" + }, + { + "folderName": "Camera configuration", + "children": [ + { + "functionName": "SetFollowOnX" + }, + { + "functionName": "SetFollowOnY" + }, + { + "functionName": "SetFollowFreeAreaRight" + }, + { + "functionName": "SetFollowFreeAreaLeft" + }, + { + "functionName": "SetFollowFreeAreaTop" + }, + { + "functionName": "SetFollowFreeAreaBottom" + }, + { + "functionName": "SetLeftwardSpeedMax" + }, + { + "functionName": "SetRightwardSpeedMax" + }, + { + "functionName": "SetUpwardSpeedMax" + }, + { + "functionName": "SetDownwardSpeedMax" + }, + { + "functionName": "SetLeftwardSpeed" + }, + { + "functionName": "SetRightwardSpeed" + }, + { + "functionName": "SetDownwardSpeed" + }, + { + "functionName": "SetUpwardSpeed" + }, + { + "functionName": "OffsetX" + }, + { + "functionName": "SetOffsetXOp" + }, + { + "functionName": "SetOffsetX" + }, + { + "functionName": "OffsetY" + }, + { + "functionName": "SetOffsetYOp" + }, + { + "functionName": "SetOffsetY" + }, + { + "functionName": "SetForecastTime" + }, + { + "functionName": "SetCameraDelay" + } + ] + }, + { + "folderName": "Private", + "children": [ + { + "functionName": "FreeAreaLeft" + }, + { + "functionName": "FreeAreaRight" + }, + { + "functionName": "FreeAreaBottom" + }, + { + "functionName": "FreeAreaTop" + }, + { + "functionName": "UpdateDelayedPosition" + }, + { + "functionName": "AddForecastHistoryPosition" + }, + { + "functionName": "UpdateForecastedPosition" + }, + { + "functionName": "ProjectHistoryEnds" + }, + { + "functionName": "ForecastTimeRatio" + } + ] + }, + { + "functionName": "IsDelayed" + }, + { + "functionName": "CurrentDelay" + }, + { + "functionName": "IsWaiting" + } + ] + }, "propertyDescriptors": [ { "value": "0.9", "type": "Number", "label": "Leftward catch-up speed (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "LeftwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Rightward catch-up speed (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "RightwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Upward catch-up speed (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "UpwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Downward catch-up speed (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "DownwardSpeed" }, { "value": "true", "type": "Boolean", "label": "Follow on X axis", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "FollowOnX" }, { "value": "true", "type": "Boolean", "label": "Follow on Y axis", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "FollowOnY" }, { @@ -5611,10 +5745,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area left border", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "FollowFreeAreaLeft" }, { @@ -5622,10 +5753,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area right border", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "FollowFreeAreaRight" }, { @@ -5633,10 +5761,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area top border", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "FollowFreeAreaTop" }, { @@ -5644,10 +5769,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area bottom border", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "FollowFreeAreaBottom" }, { @@ -5655,10 +5777,7 @@ "type": "Number", "unit": "Pixel", "label": "Camera offset X", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "CameraOffsetX" }, { @@ -5666,10 +5785,7 @@ "type": "Number", "unit": "Pixel", "label": "Camera offset Y", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "CameraOffsetY" }, { @@ -5677,10 +5793,7 @@ "type": "Number", "unit": "Second", "label": "Camera delay", - "description": "", "group": "Timing", - "extraInformation": [], - "hidden": false, "name": "CameraDelay" }, { @@ -5688,10 +5801,7 @@ "type": "Number", "unit": "Second", "label": "Forecast time", - "description": "", "group": "Timing", - "extraInformation": [], - "hidden": false, "name": "ForecastTime" }, { @@ -5699,19 +5809,13 @@ "type": "Number", "unit": "Second", "label": "Forecast history duration", - "description": "", "group": "Timing", - "extraInformation": [], - "hidden": false, "name": "ForecastHistoryDuration" }, { "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "LogLeftwardSpeed" }, @@ -5719,9 +5823,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "LogRightwardSpeed" }, @@ -5729,9 +5830,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "LogDownwardSpeed" }, @@ -5739,9 +5837,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "LogUpwardSpeed" }, @@ -5749,9 +5844,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "DelayedCenterX" }, @@ -5759,9 +5851,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "DelayedCenterY" }, @@ -5769,9 +5858,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryMeanX" }, @@ -5779,9 +5865,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryMeanY" }, @@ -5789,9 +5872,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryVarianceX" }, @@ -5799,9 +5879,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryCovariance" }, @@ -5809,9 +5886,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryLinearA" }, @@ -5819,9 +5893,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryLinearB" }, @@ -5829,9 +5900,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastedX" }, @@ -5839,9 +5907,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastedY" }, @@ -5849,9 +5914,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ProjectedNewestX" }, @@ -5859,9 +5921,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ProjectedNewestY" }, @@ -5869,9 +5928,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ProjectedOldestX" }, @@ -5879,9 +5935,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ProjectedOldestY" }, @@ -5889,9 +5942,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "ForecastHistoryVarianceY" }, @@ -5899,9 +5949,6 @@ "value": "", "type": "Number", "label": "Index (local variable)", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "Index" }, @@ -5909,9 +5956,6 @@ "value": "0", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "CameraDelayCatchUpSpeed" }, @@ -5919,9 +5963,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "CameraExtraDelay" }, @@ -5929,9 +5970,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "WaitingSpeedXMax" }, @@ -5939,9 +5977,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "WaitingSpeedYMax" }, @@ -5949,9 +5984,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "WaitingEnd" }, @@ -5959,9 +5991,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "CameraDelayCatchUpDuration" }, @@ -5970,10 +5999,7 @@ "type": "Number", "unit": "PixelSpeed", "label": "Leftward maximum speed", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "LeftwardSpeedMax" }, { @@ -5981,10 +6007,7 @@ "type": "Number", "unit": "PixelSpeed", "label": "Rightward maximum speed", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "RightwardSpeedMax" }, { @@ -5992,10 +6015,7 @@ "type": "Number", "unit": "PixelSpeed", "label": "Upward maximum speed", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "UpwardSpeedMax" }, { @@ -6003,19 +6023,13 @@ "type": "Number", "unit": "PixelSpeed", "label": "Downward maximum speed", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "DownwardSpeedMax" }, { "value": "", "type": "Number", "label": "OldX (local variable)", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "OldX" }, @@ -6023,9 +6037,6 @@ "value": "", "type": "Number", "label": "OldY (local variable)", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "OldY" }, @@ -6033,20 +6044,188 @@ "value": "", "type": "Boolean", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "IsCalledManually" } ], - "sharedPropertyDescriptors": [] + "propertiesFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "folderName": "Catch-up speed", + "children": [ + { + "propertyName": "LeftwardSpeed" + }, + { + "propertyName": "RightwardSpeed" + }, + { + "propertyName": "UpwardSpeed" + }, + { + "propertyName": "DownwardSpeed" + } + ] + }, + { + "propertyName": "FollowOnX" + }, + { + "propertyName": "FollowOnY" + }, + { + "folderName": "Position", + "children": [ + { + "propertyName": "FollowFreeAreaLeft" + }, + { + "propertyName": "FollowFreeAreaRight" + }, + { + "propertyName": "FollowFreeAreaTop" + }, + { + "propertyName": "FollowFreeAreaBottom" + }, + { + "propertyName": "CameraOffsetX" + }, + { + "propertyName": "CameraOffsetY" + } + ] + }, + { + "folderName": "Timing", + "children": [ + { + "propertyName": "CameraDelay" + }, + { + "propertyName": "ForecastTime" + }, + { + "propertyName": "ForecastHistoryDuration" + } + ] + }, + { + "propertyName": "LogLeftwardSpeed" + }, + { + "propertyName": "LogRightwardSpeed" + }, + { + "propertyName": "LogDownwardSpeed" + }, + { + "propertyName": "LogUpwardSpeed" + }, + { + "propertyName": "DelayedCenterX" + }, + { + "propertyName": "DelayedCenterY" + }, + { + "propertyName": "ForecastHistoryMeanX" + }, + { + "propertyName": "ForecastHistoryMeanY" + }, + { + "propertyName": "ForecastHistoryVarianceX" + }, + { + "propertyName": "ForecastHistoryCovariance" + }, + { + "propertyName": "ForecastHistoryLinearA" + }, + { + "propertyName": "ForecastHistoryLinearB" + }, + { + "propertyName": "ForecastedX" + }, + { + "propertyName": "ForecastedY" + }, + { + "propertyName": "ProjectedNewestX" + }, + { + "propertyName": "ProjectedNewestY" + }, + { + "propertyName": "ProjectedOldestX" + }, + { + "propertyName": "ProjectedOldestY" + }, + { + "propertyName": "ForecastHistoryVarianceY" + }, + { + "propertyName": "Index" + }, + { + "propertyName": "CameraDelayCatchUpSpeed" + }, + { + "propertyName": "CameraExtraDelay" + }, + { + "propertyName": "WaitingSpeedXMax" + }, + { + "propertyName": "WaitingSpeedYMax" + }, + { + "propertyName": "WaitingEnd" + }, + { + "propertyName": "CameraDelayCatchUpDuration" + }, + { + "folderName": "Maximum speed", + "children": [ + { + "propertyName": "LeftwardSpeedMax" + }, + { + "propertyName": "RightwardSpeedMax" + }, + { + "propertyName": "UpwardSpeedMax" + }, + { + "propertyName": "DownwardSpeedMax" + } + ] + }, + { + "propertyName": "OldX" + }, + { + "propertyName": "OldY" + }, + { + "propertyName": "IsCalledManually" + } + ] + } }, { "description": "Smoothly scroll to follow a character and stabilize the camera when jumping.", "fullName": "Smooth platformer camera", + "helpPath": "", + "iconUrl": "", "name": "SmoothPlatformerCamera", "objectType": "", + "previewIconUrl": "", "eventsFunctions": [ { "fullName": "", @@ -6263,38 +6442,39 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "doStepPreEvents" + } + ] + }, "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", - "description": "", - "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], - "hidden": false, + "choices": [], "name": "PlatformerCharacter" }, { "value": "", "type": "Behavior", "label": "Smooth camera behavior", - "description": "", - "group": "", "extraInformation": [ "SmoothCamera::SmoothCamera" ], - "hidden": false, + "choices": [], "name": "SmoothCamera" }, { "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "JumpOriginY" }, @@ -6303,10 +6483,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area top in the air", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "AirFollowFreeAreaTop" }, { @@ -6314,10 +6491,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area bottom in the air", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "AirFollowFreeAreaBottom" }, { @@ -6325,10 +6499,7 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area top on the floor", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "FloorFollowFreeAreaTop" }, { @@ -6336,50 +6507,35 @@ "type": "Number", "unit": "Pixel", "label": "Follow free area bottom on the floor", - "description": "", "group": "Position", - "extraInformation": [], - "hidden": false, "name": "FloorFollowFreeAreaBottom" }, { "value": "0.95", "type": "Number", "label": "Upward speed in the air (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "AirUpwardSpeed" }, { "value": "0.95", "type": "Number", "label": "Downward speed in the air (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "AirDownwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Upward speed on the floor (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "FloorUpwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Downward speed on the floor (in ratio per second)", - "description": "", "group": "Catch-up speed", - "extraInformation": [], - "hidden": false, "name": "FloorDownwardSpeed" }, { @@ -6387,10 +6543,7 @@ "type": "Number", "unit": "PixelSpeed", "label": "Upward maximum speed in the air", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "AirUpwardSpeedMax" }, { @@ -6398,10 +6551,7 @@ "type": "Number", "unit": "PixelSpeed", "label": "Downward maximum speed in the air", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "AirDownwardSpeedMax" }, { @@ -6409,10 +6559,7 @@ "type": "Number", "unit": "PixelSpeed", "label": "Upward maximum speed on the floor", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "FloorUpwardSpeedMax" }, { @@ -6420,14 +6567,75 @@ "type": "Number", "unit": "PixelSpeed", "label": "Downward maximum speed on the floor", - "description": "", "group": "Maximum speed", - "extraInformation": [], - "hidden": false, "name": "FloorDownwardSpeedMax" } ], - "sharedPropertyDescriptors": [] + "propertiesFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "propertyName": "PlatformerCharacter" + }, + { + "propertyName": "SmoothCamera" + }, + { + "propertyName": "JumpOriginY" + }, + { + "folderName": "Position", + "children": [ + { + "propertyName": "AirFollowFreeAreaTop" + }, + { + "propertyName": "AirFollowFreeAreaBottom" + }, + { + "propertyName": "FloorFollowFreeAreaTop" + }, + { + "propertyName": "FloorFollowFreeAreaBottom" + } + ] + }, + { + "folderName": "Catch-up speed", + "children": [ + { + "propertyName": "AirUpwardSpeed" + }, + { + "propertyName": "AirDownwardSpeed" + }, + { + "propertyName": "FloorUpwardSpeed" + }, + { + "propertyName": "FloorDownwardSpeed" + } + ] + }, + { + "folderName": "Maximum speed", + "children": [ + { + "propertyName": "AirUpwardSpeedMax" + }, + { + "propertyName": "AirDownwardSpeedMax" + }, + { + "propertyName": "FloorUpwardSpeedMax" + }, + { + "propertyName": "FloorDownwardSpeedMax" + } + ] + } + ] + } } ], "eventsBasedObjects": [] @@ -6435,8 +6643,10 @@ { "author": "", "category": "Movement", + "dimension": "", "extensionNamespace": "", "fullName": "Pixel perfect movement", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30NCgkuc3Qye2ZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLWRhc2hhcnJheTo2LDY7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtZGFzaGFycmF5OjQsNDt9DQoJLnN0NHtmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7fQ0KCS5zdDV7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1kYXNoYXJyYXk6My4xMDgxLDMuMTA4MTt9DQoJDQoJCS5zdDZ7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5OjQsMzt9DQo8L3N0eWxlPg0KPHJlY3QgeD0iNCIgeT0iNCIgY2xhc3M9InN0MCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMTIiIHkxPSIyOCIgeDI9IjEyIiB5Mj0iNCIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjIwIiB5MT0iMjgiIHgyPSIyMCIgeTI9IjQiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOCIgeTE9IjIwIiB4Mj0iNCIgeTI9IjIwIi8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMjgiIHkxPSIxMiIgeDI9IjQiIHkyPSIxMiIvPg0KPC9zdmc+DQo=", "name": "PixelPerfectMovement", @@ -6470,6 +6680,8 @@ "mMR36hCjO5dlcYmhNSuVtcREM473" ], "dependencies": [], + "globalVariables": [], + "sceneVariables": [], "eventsFunctions": [ { "description": "Return the speed necessary to cover a distance according to the deceleration.", @@ -7078,12 +7290,29 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "SpeedToReach" + }, + { + "functionName": "BrakingDistance" + }, + { + "functionName": "DefineJavaScriptForTopDown" + } + ] + }, "eventsBasedBehaviors": [ { "description": "Seamlessly align big pixels using a top-down movement.", "fullName": "Pixel perfect top-down movement", + "helpPath": "", + "iconUrl": "", "name": "PixelPerfectTopDownMovement", "objectType": "", + "previewIconUrl": "", "eventsFunctions": [ { "fullName": "", @@ -7178,57 +7407,73 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "onCreated" + }, + { + "functionName": "doStepPostEvents" + } + ] + }, "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Top-down movement behavior", - "description": "", - "group": "", "extraInformation": [ "TopDownMovementBehavior::TopDownMovementBehavior" ], - "hidden": false, + "choices": [], "name": "TopDownMovement" }, { "value": "1", "type": "Number", "label": "Pixel size", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "PixelSize" }, { "value": "0", "type": "Number", "label": "Pixel grid offset X", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "OffsetX" }, { "value": "0", "type": "Number", "label": "Pixel grid offset Y", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "OffsetY" } ], - "sharedPropertyDescriptors": [] + "propertiesFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "propertyName": "TopDownMovement" + }, + { + "propertyName": "PixelSize" + }, + { + "propertyName": "OffsetX" + }, + { + "propertyName": "OffsetY" + } + ] + } }, { "description": "Seamlessly align big pixels using a platformer character movement.", "fullName": "Pixel perfect platformer character", + "helpPath": "", + "iconUrl": "", "name": "PixelPerfectPlatformerCharacter", "objectType": "", + "previewIconUrl": "", "eventsFunctions": [ { "fullName": "", @@ -8263,56 +8508,50 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "doStepPreEvents" + }, + { + "functionName": "doStepPostEvents" + } + ] + }, "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", - "description": "", - "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], - "hidden": false, + "choices": [], "name": "PlatformerCharacter" }, { "value": "1", "type": "Number", "label": "Pixel size", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "PixelSize" }, { "value": "0", "type": "Number", "label": "Pixel grid offset X", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "OffsetX" }, { "value": "0", "type": "Number", "label": "Pixel grid offset Y", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, "name": "OffsetY" }, { "value": "0", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "TargetX" }, @@ -8320,9 +8559,6 @@ "value": "0", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "TargetDirectionX" }, @@ -8330,9 +8566,6 @@ "value": "0", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "TargetY" }, @@ -8340,9 +8573,6 @@ "value": "0", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "TargetDirectionY" }, @@ -8350,9 +8580,6 @@ "value": "", "type": "Number", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "PreviousSpeedX" }, @@ -8360,19 +8587,49 @@ "value": "", "type": "Boolean", "label": "", - "description": "", - "group": "", - "extraInformation": [], "hidden": true, "name": "IsDecelerating" } ], - "sharedPropertyDescriptors": [] + "propertiesFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "propertyName": "PlatformerCharacter" + }, + { + "propertyName": "PixelSize" + }, + { + "propertyName": "OffsetX" + }, + { + "propertyName": "OffsetY" + }, + { + "propertyName": "TargetX" + }, + { + "propertyName": "TargetDirectionX" + }, + { + "propertyName": "TargetY" + }, + { + "propertyName": "TargetDirectionY" + }, + { + "propertyName": "PreviousSpeedX" + }, + { + "propertyName": "IsDecelerating" + } + ] + } } ], "eventsBasedObjects": [] } ], - "externalLayouts": [], - "externalSourceFiles": [] -} \ No newline at end of file + "externalLayouts": [] +}