From 47f9bc0836fc2c19bb3eb9488f91b43e21cef0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Fri, 14 Mar 2025 18:12:21 +0100 Subject: [PATCH 01/21] Use 3D physics --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 292 ++++++++---------- 1 file changed, 130 insertions(+), 162 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 92c4905b9..dfaade2fb 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1,7 +1,7 @@ { "firstLayout": "Menu", "gdVersion": { - "build": 223, + "build": 226, "major": 5, "minor": 5, "revision": 0 @@ -1123,7 +1123,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.546875, + "zoomFactor": 0.6040838749988865, "windowMask": false }, "objectsGroups": [ @@ -1743,88 +1743,30 @@ "effects": [], "behaviors": [ { - "name": "AdvancedWheelGrip", - "type": "AdvancedWheelGrip::AdvancedWheelGrip", - "PhysicsCar": "PhysicsCar", - "Physics2": "Physics2", - "ShakeModel3D": "ShakeModel3D", - "GripFactor": 1, - "GripRatioMin": 0.075, - "GrassGripRatioFactor": 0.5 - }, - { - "name": "Physics2", - "type": "Physics2::Physics2Behavior", + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", "bodyType": "Dynamic", "bullet": false, "fixedRotation": false, - "canSleep": true, "shape": "Box", + "shapeOrientation": "Z", "shapeDimensionA": 0, "shapeDimensionB": 0, - "shapeOffsetX": 0, - "shapeOffsetY": 0, - "polygonOrigin": "Center", - "vertices": [], + "shapeDimensionC": 0, "density": 1, "friction": 2, "restitution": 0.5, "linearDamping": 0.1, - "angularDamping": 0, - "gravityScale": 0, - "layers": 1, - "masks": 1, - "propertiesQuickCustomizationVisibilities": { - "density": "hidden", - "friction": "hidden", - "linearDamping": "hidden", - "restitution": "hidden" - } - }, - { - "name": "PhysicsCar", - "type": "PhysicsCar::PhysicsCar", - "Physics2": "Physics2", - "Acceleration": 700, - "SlippingRatio": 0.5, - "Direction": 0, - "IsRightPressed": false, - "IsLeftPressed": false, - "DirectionSpeed": 8, - "SteeringSpeed": 40, - "SpeedMax": 700, - "FrontWheelsPosition": 0.8, - "RearWheelsPosition": 0.8, - "SteeringAngleMax": 27, - "SteeringBackSpeed": 300, - "WheelGripRatio": 0.5, - "propertiesQuickCustomizationVisibilities": { - "SteeringBackSpeed": "hidden" - } + "angularDamping": 0.1, + "gravityScale": 1, + "layers": 17, + "masks": 17 }, { - "name": "ShakeModel3D", - "type": "ShakeObject3D::ShakeModel3D", - "TranslationAmplitudeX": 0, - "TranslationAmplitudeY": 0, - "TranslationAmplitudeZ": 0, - "RotationAmplitudeX": 5, - "RotationAmplitudeY": 5, - "RotationAmplitudeZ": 5, - "Time": 5.00000000000364, - "Duration": 5.00000000000364, - "StartEasingDuration": 5.00000000000364, - "StopEasingDuration": 5.00000000000364, - "Frequency": 5.00000000000364, - "DeltaX": 5.00000000000364, - "DeltaY": 5.00000000000364, - "DeltaZ": 5.00000000000364, - "DeltaAngleX": 5.00000000000364, - "DeltaAngleY": 5.00000000000364, - "DeltaAngleZ": 5.00000000000364, - "NoiseTime": 5.00000000000364, - "Object3D": "Object3D", - "IsStartingAtCreation": false + "name": "PhysicsVehicle3D", + "type": "Physics3D::PhysicsVehicle3D", + "physics3D": "Physics3D" }, { "name": "ThirdPersonCamera", @@ -1832,12 +1774,12 @@ "Object3D": "Object3D", "RotationHalfwayDuration": 0.125, "TranslationZHalfwayDuration": 0.125, - "Distance": 800, + "Distance": 600, "LateralOffset": 0, "AheadOffset": 200, "OffsetZ": 0, "RotationAngleOffset": 0, - "ElevationAngleOffset": 80, + "ElevationAngleOffset": 5, "FollowFreeAreaZMax": 0, "FollowFreeAreaZMin": 0, "RotationLogSpeed": 2.0247e-320, @@ -1851,6 +1793,7 @@ ], "content": { "centerLocation": "ObjectCenter", + "crossfadeDuration": 0, "depth": 74, "height": 74, "keepAspectRatio": true, @@ -1872,31 +1815,30 @@ "effects": [], "behaviors": [ { - "name": "Physics2", - "type": "Physics2::Physics2Behavior", + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", "bodyType": "Static", "bullet": false, "fixedRotation": false, - "canSleep": true, "shape": "Box", + "shapeOrientation": "Z", "shapeDimensionA": 0, "shapeDimensionB": 0, - "shapeOffsetX": 0, - "shapeOffsetY": 0, - "polygonOrigin": "Center", - "vertices": [], + "shapeDimensionC": 0, "density": 1, "friction": 0.3, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, "gravityScale": 1, - "layers": 1, - "masks": 1 + "layers": 17, + "masks": 17 } ], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 245, "height": 245, "keepAspectRatio": true, @@ -1918,31 +1860,30 @@ "effects": [], "behaviors": [ { - "name": "Physics2", - "type": "Physics2::Physics2Behavior", + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", "bodyType": "Static", "bullet": false, "fixedRotation": false, - "canSleep": true, "shape": "Box", + "shapeOrientation": "Z", "shapeDimensionA": 0, "shapeDimensionB": 0, - "shapeOffsetX": 0, - "shapeOffsetY": 0, - "polygonOrigin": "Center", - "vertices": [], + "shapeDimensionC": 0, "density": 1, "friction": 0.3, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, "gravityScale": 1, - "layers": 1, - "masks": 1 + "layers": 17, + "masks": 17 } ], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 245, "height": 245, "keepAspectRatio": true, @@ -1964,31 +1905,30 @@ "effects": [], "behaviors": [ { - "name": "Physics2", - "type": "Physics2::Physics2Behavior", + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", "bodyType": "Dynamic", "bullet": false, "fixedRotation": false, - "canSleep": true, "shape": "Box", + "shapeOrientation": "Z", "shapeDimensionA": 0, "shapeDimensionB": 0, - "shapeOffsetX": 0, - "shapeOffsetY": 0, - "polygonOrigin": "Center", - "vertices": [], + "shapeDimensionC": 0, "density": 1, "friction": 0.5, "restitution": 0.2, "linearDamping": 7, "angularDamping": 4, - "gravityScale": 0, - "layers": 1, - "masks": 1 + "gravityScale": 1, + "layers": 17, + "masks": 17 } ], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 84, "height": 84, "keepAspectRatio": true, @@ -2010,31 +1950,30 @@ "effects": [], "behaviors": [ { - "name": "Physics2", - "type": "Physics2::Physics2Behavior", + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", "bodyType": "Dynamic", "bullet": false, "fixedRotation": false, - "canSleep": true, "shape": "Box", + "shapeOrientation": "Z", "shapeDimensionA": 0, "shapeDimensionB": 0, - "shapeOffsetX": 0, - "shapeOffsetY": 0, - "polygonOrigin": "Center", - "vertices": [], + "shapeDimensionC": 0, "density": 1, - "friction": 0.5, + "friction": 0.3, "restitution": 0.2, "linearDamping": 7, "angularDamping": 4, - "gravityScale": 0, - "layers": 1, - "masks": 1 + "gravityScale": 1, + "layers": 17, + "masks": 17 } ], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 79, "height": 79, "keepAspectRatio": true, @@ -2092,6 +2031,7 @@ "behaviors": [], "content": { "centerLocation": "ObjectCenter", + "crossfadeDuration": 0, "depth": 384, "height": 384, "keepAspectRatio": true, @@ -2114,6 +2054,7 @@ "behaviors": [], "content": { "centerLocation": "ObjectCenter", + "crossfadeDuration": 0, "depth": 384, "height": 384, "keepAspectRatio": true, @@ -2136,6 +2077,7 @@ "behaviors": [], "content": { "centerLocation": "ObjectCenter", + "crossfadeDuration": 0, "depth": 384, "height": 384, "keepAspectRatio": true, @@ -2158,6 +2100,7 @@ "behaviors": [], "content": { "centerLocation": "ObjectCenter", + "crossfadeDuration": 0, "depth": 384, "height": 384, "keepAspectRatio": true, @@ -2180,6 +2123,7 @@ "behaviors": [], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 250, "height": 250, "keepAspectRatio": true, @@ -2199,11 +2143,33 @@ "type": "Scene3D::Cube3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", + "bodyType": "Static", + "bullet": false, + "fixedRotation": false, + "shape": "Box", + "shapeOrientation": "Z", + "shapeDimensionA": 0, + "shapeDimensionB": 0, + "shapeDimensionC": 0, + "density": 1, + "friction": 0.3, + "restitution": 0.1, + "linearDamping": 0.1, + "angularDamping": 0.1, + "gravityScale": 1, + "layers": 17, + "masks": 17 + } + ], "content": { "width": 100, "height": 100, - "depth": 0, + "depth": 100, "enableTextureTransparency": false, "facesOrientation": "Y", "frontFaceResourceName": "assets\\Grass.png", @@ -2464,6 +2430,7 @@ ], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 31, "height": 31, "keepAspectRatio": true, @@ -2749,6 +2716,7 @@ "comment": "Start timer only when the SedanPlayer starts moving." }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -2841,12 +2809,11 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateDownKey" + "value": "Physics3D::PhysicsVehicle3D::SimulateBackwardKey" }, "parameters": [ "Player", - "PhysicsCar", - "" + "PhysicsVehicle3D" ] } ] @@ -2867,12 +2834,11 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateUpKey" + "value": "Physics3D::PhysicsVehicle3D::SimulateForwardKey" }, "parameters": [ "Player", - "PhysicsCar", - "" + "PhysicsVehicle3D" ] } ] @@ -2893,12 +2859,11 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateLeftKey" + "value": "Physics3D::PhysicsVehicle3D::SimulateLeftKey" }, "parameters": [ "Player", - "PhysicsCar", - "" + "PhysicsVehicle3D" ] } ] @@ -2919,17 +2884,17 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateRightKey" + "value": "Physics3D::PhysicsVehicle3D::SimulateRightKey" }, "parameters": [ "Player", - "PhysicsCar", - "" + "PhysicsVehicle3D" ] } ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -2978,6 +2943,7 @@ ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -3008,6 +2974,7 @@ ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -3207,6 +3174,7 @@ ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [], @@ -3307,6 +3275,7 @@ "type": "BuiltinCommonInstructions::Group", "events": [ { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ @@ -3595,16 +3564,6 @@ "0.5" ] }, - { - "type": { - "value": "Physics2::TimeScale" - }, - "parameters": [ - "Player", - "Physics2", - "0.5" - ] - }, { "type": { "value": "SetNumberVariable" @@ -3723,6 +3682,7 @@ "type": "BuiltinCommonInstructions::Group", "events": [ { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -3903,10 +3863,6 @@ } ], "behaviorsSharedData": [ - { - "name": "AdvancedWheelGrip", - "type": "AdvancedWheelGrip::AdvancedWheelGrip" - }, { "name": "Anchor", "type": "AnchorBehavior::AnchorBehavior" @@ -3940,16 +3896,16 @@ "type": "OpacityCapability::OpacityBehavior" }, { - "name": "Physics2", - "type": "Physics2::Physics2Behavior", + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", "gravityX": 0, "gravityY": 0, - "scaleX": 100, - "scaleY": 100 + "gravityZ": -9.8, + "worldScale": 100 }, { - "name": "PhysicsCar", - "type": "PhysicsCar::PhysicsCar" + "name": "PhysicsVehicle3D", + "type": "Physics3D::PhysicsVehicle3D" }, { "name": "Resizable", @@ -3959,11 +3915,6 @@ "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, - { - "name": "ShakeModel3D", - "type": "ShakeObject3D::ShakeModel3D", - "EasingFactor": 7.8167074e-317 - }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" @@ -4117,6 +4068,7 @@ ], "content": { "centerLocation": "ModelOrigin", + "crossfadeDuration": 0, "depth": 64, "height": 64, "keepAspectRatio": true, @@ -4533,6 +4485,7 @@ "category": "Input", "extensionNamespace": "", "fullName": "Screen Orientation Checker", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNjcmVlbi1yb3RhdGlvbiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik03LjUsMjEuNUM0LjI1LDE5Ljk0IDEuOTEsMTYuNzYgMS41NSwxM0gwLjA1QzAuNTYsMTkuMTYgNS43MSwyNCAxMiwyNEwxMi42NiwyMy45N0w4Ljg1LDIwLjE2TTE0LjgzLDIxLjE5TDIuODEsOS4xN0w5LjE3LDIuODFMMjEuMTksMTQuODNNMTAuMjMsMS43NUM5LjY0LDEuMTYgOC42OSwxLjE2IDguMTEsMS43NUwxLjc1LDguMTFDMS4xNiw4LjcgMS4xNiw5LjY1IDEuNzUsMTAuMjNMMTMuNzcsMjIuMjVDMTQuMzYsMjIuODQgMTUuMzEsMjIuODQgMTUuODksMjIuMjVMMjIuMjUsMTUuODlDMjIuODQsMTUuMyAyMi44NCwxNC4zNSAyMi4yNSwxMy43N0wxMC4yMywxLjc1TTE2LjUsMi41QzE5Ljc1LDQuMDcgMjIuMDksNy4yNCAyMi40NSwxMUgyMy45NUMyMy40NCw0Ljg0IDE4LjI5LDAgMTIsMEwxMS4zNCwwLjAzTDE1LjE1LDMuODRMMTYuNSwyLjVaIiAvPjwvc3ZnPg==", "name": "ScreenOrientationChecker", @@ -5498,6 +5451,7 @@ "category": "Input", "extensionNamespace": "", "fullName": "Gamepads (controllers)", + "gdevelopVersion": "", "helpPath": "/all-features/gamepad", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdhbWVwYWQtdmFyaWFudC1vdXRsaW5lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsOUg4VjExSDEwVjEzSDhWMTVINlYxM0g0VjExSDZWOU0xOC41LDlBMS41LDEuNSAwIDAsMSAyMCwxMC41QTEuNSwxLjUgMCAwLDEgMTguNSwxMkExLjUsMS41IDAgMCwxIDE3LDEwLjVBMS41LDEuNSAwIDAsMSAxOC41LDlNMTUuNSwxMkExLjUsMS41IDAgMCwxIDE3LDEzLjVBMS41LDEuNSAwIDAsMSAxNS41LDE1QTEuNSwxLjUgMCAwLDEgMTQsMTMuNUExLjUsMS41IDAgMCwxIDE1LjUsMTJNMTcsNUE3LDcgMCAwLDEgMjQsMTJBNyw3IDAgMCwxIDE3LDE5QzE1LjA0LDE5IDEzLjI3LDE4LjIgMTIsMTYuOUMxMC43MywxOC4yIDguOTYsMTkgNywxOUE3LDcgMCAwLDEgMCwxMkE3LDcgMCAwLDEgNyw1SDE3TTcsN0E1LDUgMCAwLDAgMiwxMkE1LDUgMCAwLDAgNywxN0M4LjY0LDE3IDEwLjA5LDE2LjIxIDExLDE1SDEzQzEzLjkxLDE2LjIxIDE1LjM2LDE3IDE3LDE3QTUsNSAwIDAsMCAyMiwxMkE1LDUgMCAwLDAgMTcsN0g3WiIgLz48L3N2Zz4=", "name": "Gamepads", @@ -11438,6 +11392,7 @@ "category": "Visual effect", "extensionNamespace": "", "fullName": "3D object shake", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXZlY3Rvci1kaWZmZXJlbmNlLWFiIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTMsMUMxLjg5LDEgMSwxLjg5IDEsM1Y1SDNWM0g1VjFIM003LDFWM0gxMFYxSDdNMTIsMVYzSDE0VjVIMTZWM0MxNiwxLjg5IDE1LjExLDEgMTQsMUgxMk0xLDdWMTBIM1Y3SDFNMTQsN0MxNCw3IDE0LDExLjY3IDE0LDE0QzExLjY3LDE0IDcsMTQgNywxNEM3LDE0IDcsMTggNywyMEM3LDIxLjExIDcuODksMjIgOSwyMkgyMEMyMS4xMSwyMiAyMiwyMS4xMSAyMiwyMFY5QzIyLDcuODkgMjEuMTEsNyAyMCw3QzE4LDcgMTQsNyAxNCw3TTE2LDlIMjBWMjBIOVYxNkgxNEMxNS4xMSwxNiAxNiwxNS4xMSAxNiwxNFY5TTEsMTJWMTRDMSwxNS4xMSAxLjg5LDE2IDMsMTZINVYxNEgzVjEySDFaIiAvPjwvc3ZnPg==", "name": "ShakeObject3D", @@ -14308,6 +14263,7 @@ "category": "Camera", "extensionNamespace": "", "fullName": "Third person camera", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSI3LDEwIDEsMTMgNywxNiAxMywxMyAiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjEsMTMgMSwyMCA3LDIzIDEzLDIwIDEzLDEzICIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjciIHkxPSIxNiIgeDI9IjciIHkyPSIyMyIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjMxIiB5MT0iMTYiIHgyPSIyMSIgeTI9IjgiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyMSIgeTE9IjI0IiB4Mj0iMzEiIHkyPSIxNiIvPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIyLjcsMjIuNkMyMCwyMS43LDE4LDE5LjEsMTgsMTZjMC0zLjEsMi01LjcsNC43LTYuNiIvPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTE5LjgsMTEuM2MxLjQsMS4xLDIuMiwyLjgsMi4yLDQuN2MwLDEuOS0wLjksMy42LTIuMiw0LjciLz4NCjwvc3ZnPg0K", "name": "ThirdPersonCamera", @@ -16683,6 +16639,7 @@ "category": "Visual effect", "extensionNamespace": "", "fullName": "3D particle emitter", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZpcmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTcuNjYgMTEuMkMxNy40MyAxMC45IDE3LjE1IDEwLjY0IDE2Ljg5IDEwLjM4QzE2LjIyIDkuNzggMTUuNDYgOS4zNSAxNC44MiA4LjcyQzEzLjMzIDcuMjYgMTMgNC44NSAxMy45NSAzQzEzIDMuMjMgMTIuMTcgMy43NSAxMS40NiA0LjMyQzguODcgNi40IDcuODUgMTAuMDcgOS4wNyAxMy4yMkM5LjExIDEzLjMyIDkuMTUgMTMuNDIgOS4xNSAxMy41NUM5LjE1IDEzLjc3IDkgMTMuOTcgOC44IDE0LjA1QzguNTcgMTQuMTUgOC4zMyAxNC4wOSA4LjE0IDEzLjkzQzguMDggMTMuODggOC4wNCAxMy44MyA4IDEzLjc2QzYuODcgMTIuMzMgNi42OSAxMC4yOCA3LjQ1IDguNjRDNS43OCAxMCA0Ljg3IDEyLjMgNSAxNC40N0M1LjA2IDE0Ljk3IDUuMTIgMTUuNDcgNS4yOSAxNS45N0M1LjQzIDE2LjU3IDUuNyAxNy4xNyA2IDE3LjdDNy4wOCAxOS40MyA4Ljk1IDIwLjY3IDEwLjk2IDIwLjkyQzEzLjEgMjEuMTkgMTUuMzkgMjAuOCAxNy4wMyAxOS4zMkMxOC44NiAxNy42NiAxOS41IDE1IDE4LjU2IDEyLjcyTDE4LjQzIDEyLjQ2QzE4LjIyIDEyIDE3LjY2IDExLjIgMTcuNjYgMTEuMk0xNC41IDE3LjVDMTQuMjIgMTcuNzQgMTMuNzYgMTggMTMuNCAxOC4xQzEyLjI4IDE4LjUgMTEuMTYgMTcuOTQgMTAuNSAxNy4yOEMxMS42OSAxNyAxMi40IDE2LjEyIDEyLjYxIDE1LjIzQzEyLjc4IDE0LjQzIDEyLjQ2IDEzLjc3IDEyLjMzIDEzQzEyLjIxIDEyLjI2IDEyLjIzIDExLjYzIDEyLjUgMTAuOTRDMTIuNjkgMTEuMzIgMTIuODkgMTEuNyAxMy4xMyAxMkMxMy45IDEzIDE1LjExIDEzLjQ0IDE1LjM3IDE0LjhDMTUuNDEgMTQuOTQgMTUuNDMgMTUuMDggMTUuNDMgMTUuMjNDMTUuNDYgMTYuMDUgMTUuMSAxNi45NSAxNC41IDE3LjVIMTQuNVoiIC8+PC9zdmc+", "name": "ParticleEmitter3D", @@ -26491,6 +26448,7 @@ "category": "User interface", "extensionNamespace": "", "fullName": "Time formatting", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWNsb2NrLWRpZ2l0YWwiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMiw2QTIsMiAwIDAsMCAwLDhWMTZBMiwyIDAgMCwwIDIsMThIMjJBMiwyIDAgMCwwIDI0LDE2VjhBMiwyIDAgMCwwIDIyLDZNMiw4SDIyVjE2SDJNMyw5VjEwLjVINi4yNUwzLDE1SDQuNzVMOCwxMC41VjlNOS4yNSw5VjEwLjVIMTAuNzVWOU0xMiw5VjEwLjVIMTMuNVYxNUgxNVY5TTE3LDlBMSwxIDAgMCwwIDE2LDEwVjE0QTEsMSAwIDAsMCAxNywxNUgyMEExLDEgMCAwLDAgMjEsMTRWMTBBMSwxIDAgMCwwIDIwLDlNMTcuNSwxMC41SDE5LjVWMTMuNUgxNy41TTkuMjUsMTMuNVYxNUgxMC43NVYxMy41IiAvPjwvc3ZnPg==", "name": "TimeFormatter", @@ -26611,6 +26569,7 @@ "category": "User interface", "extensionNamespace": "", "fullName": "Panel sprite button", + "gdevelopVersion": "", "helpPath": "/objects/button", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI5LDIzSDNjLTEuMSwwLTItMC45LTItMlYxMWMwLTEuMSwwLjktMiwyLTJoMjZjMS4xLDAsMiwwLjksMiwydjEwQzMxLDIyLjEsMzAuMSwyMywyOSwyM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMywxOUwxMywxOWMtMS4xLDAtMi0wLjktMi0ydi0yYzAtMS4xLDAuOS0yLDItMmgwYzEuMSwwLDIsMC45LDIsMnYyQzE1LDE4LjEsMTQuMSwxOSwxMywxOXoiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIxOCIgeTE9IjEzIiB4Mj0iMTgiIHkyPSIxOSIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjIxIiB5MT0iMTMiIHgyPSIxOCIgeTI9IjE3Ii8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMjEiIHkxPSIxOSIgeDI9IjE5IiB5Mj0iMTYiLz4NCjwvc3ZnPg0K", "name": "PanelSpriteButton", @@ -29363,6 +29322,7 @@ "category": "Movement", "extensionNamespace": "", "fullName": "Stick objects to others", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN0aWNrZXItb3V0bGluZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik01LjUgMkMzLjYgMiAyIDMuNiAyIDUuNVYxOC41QzIgMjAuNCAzLjYgMjIgNS41IDIySDE2TDIyIDE2VjUuNUMyMiAzLjYgMjAuNCAyIDE4LjUgMkg1LjVNNS44IDRIMTguM0MxOS4zIDQgMjAuMSA0LjggMjAuMSA1LjhWMTVIMTguNkMxNi43IDE1IDE1LjEgMTYuNiAxNS4xIDE4LjVWMjBINS44QzQuOCAyMCA0IDE5LjIgNCAxOC4yVjUuOEM0IDQuOCA0LjggNCA1LjggNCIgLz48L3N2Zz4=", "name": "Sticker", @@ -29981,6 +29941,7 @@ "category": "Movement", "extensionNamespace": "", "fullName": "Screen wrap", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLW1vbml0b3Itc2NyZWVuc2hvdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik05LDZINVYxMEg3VjhIOU0xOSwxMEgxN1YxMkgxNVYxNEgxOU0yMSwxNkgzVjRIMjFNMjEsMkgzQzEuODksMiAxLDIuODkgMSw0VjE2QTIsMiAwIDAsMCAzLDE4SDEwVjIwSDhWMjJIMTZWMjBIMTRWMThIMjFBMiwyIDAgMCwwIDIzLDE2VjRDMjMsMi44OSAyMi4xLDIgMjEsMiIgLz48L3N2Zz4=", "name": "ScreenWrap", @@ -32450,6 +32411,7 @@ "category": "Game mechanic", "extensionNamespace": "", "fullName": "Object \"Is On Screen\" Detection", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLW1vbml0b3Itc2NyZWVuc2hvdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik05LDZINVYxMEg3VjhIOU0xOSwxMEgxN1YxMkgxNVYxNEgxOU0yMSwxNkgzVjRIMjFNMjEsMkgzQzEuODksMiAxLDIuODkgMSw0VjE2QTIsMiAwIDAsMCAzLDE4SDEwVjIwSDhWMjJIMTZWMjBIMTRWMThIMjFBMiwyIDAgMCwwIDIzLDE2VjRDMjMsMi44OSAyMi4xLDIgMjEsMiIgLz48L3N2Zz4=", "name": "IsOnScreen", @@ -32581,6 +32543,7 @@ "category": "Input", "extensionNamespace": "", "fullName": "Multitouch joystick and buttons (sprite)", + "gdevelopVersion": "", "helpPath": "/objects/multitouch-joystick", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMTYiIGN5PSIxNiIgcj0iMTMiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjI4LjQsMTIgMjAsMTIgMjAsMy42ICIvPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMjAsMjguNCAyMCwyMCAyOC40LDIwICIvPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMy42LDIwIDEyLDIwIDEyLDI4LjQgIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSIxMiwzLjYgMTIsMTIgMy42LDEyICIvPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIxNiw2IDE2LjcsNyAxNS4zLDcgIi8+DQo8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjE2LDI2IDE1LjMsMjUgMTYuNywyNSAiLz4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNiwxNiA3LDE1LjMgNywxNi43ICIvPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNiwxNiAyNSwxNi43IDI1LDE1LjMgIi8+DQo8L3N2Zz4NCg==", "name": "SpriteMultitouchJoystick", @@ -39590,6 +39553,7 @@ "category": "Movement", "extensionNamespace": "", "fullName": "Physics car", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWNhci1iYWNrIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsMTFMNyw3SDE3TDE4LDExTTE4LjkyLDZDMTguNzEsNS40IDE4LjE0LDUgMTcuNSw1SDYuNUM1Ljg2LDUgNS4yOSw1LjQgNS4wOCw2TDMsMTJWMjBBMSwxIDAgMCwwIDQsMjFINUExLDEgMCAwLDAgNiwyMFYxOEgxOFYyMEExLDEgMCAwLDAgMTksMjFIMjBBMSwxIDAgMCwwIDIxLDIwVjEyTDE4LjkyLDZNNywxNkg1VjE0SDdWMTZNMTksMTZIMTdWMTRIMTlWMTZNMTQsMTZIMTBWMTRIMTRWMTZaIiAvPjwvc3ZnPg==", "name": "PhysicsCar", @@ -42040,6 +42004,7 @@ "category": "", "extensionNamespace": "", "fullName": "", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "", "name": "AdvancedWheelGrip", @@ -42488,6 +42453,7 @@ "category": "", "extensionNamespace": "", "fullName": "", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "", "name": "Collectible", @@ -42721,6 +42687,7 @@ "category": "User interface", "extensionNamespace": "", "fullName": "", + "gdevelopVersion": "", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRyb3BoeSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xOCAyQzE3LjEgMiAxNiAzIDE2IDRIOEM4IDMgNi45IDIgNiAySDJWMTFDMiAxMiAzIDEzIDQgMTNINi4yQzYuNiAxNSA3LjkgMTYuNyAxMSAxN1YxOS4wOEM4IDE5LjU0IDggMjIgOCAyMkgxNkMxNiAyMiAxNiAxOS41NCAxMyAxOS4wOFYxN0MxNi4xIDE2LjcgMTcuNCAxNSAxNy44IDEzSDIwQzIxIDEzIDIyIDEyIDIyIDExVjJIMThNNiAxMUg0VjRINlYxMU0yMCAxMUgxOFY0SDIwVjExWiIgLz48L3N2Zz4=", "name": "LeaderboardDialog", @@ -44393,16 +44360,19 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 6, "customSize": false, "height": 159.1836734693878, "keepRatio": true, "layer": "", "name": "Player", "persistentUuid": "894bdbd1-6dc0-474b-ae8a-1ced5a9cc957", + "rotationX": -7, + "rotationY": 10, "width": 300, "x": -992, "y": 288, + "z": 200, "zOrder": 26, "numberProperties": [], "stringProperties": [], @@ -46274,17 +46244,15 @@ { "angle": 0, "customSize": true, - "depth": 1, - "height": 5888, + "depth": 100, + "height": 3456, "layer": "", - "locked": true, "name": "Grass", "persistentUuid": "05276cd6-3502-4c9d-a19e-58308fbbb417", - "sealed": true, - "width": 7936, - "x": -3328, - "y": -2560, - "z": -30, + "width": 4736, + "x": -1792, + "y": -1408, + "z": -100, "zOrder": 47, "numberProperties": [], "stringProperties": [], @@ -46301,7 +46269,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.20220707303602042, + "zoomFactor": 0.6897782140104574, "windowMask": false } }, From 73cf5918e24618b8c0f670dab272b933321b4749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Fri, 21 Mar 2025 14:03:49 +0100 Subject: [PATCH 02/21] Try to find playable settings. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 523 +++++++++++++----- 1 file changed, 370 insertions(+), 153 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index dfaade2fb..667cfc27a 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1751,9 +1751,9 @@ "fixedRotation": false, "shape": "Box", "shapeOrientation": "Z", - "shapeDimensionA": 0, - "shapeDimensionB": 0, - "shapeDimensionC": 0, + "shapeDimensionA": 74, + "shapeDimensionB": 39, + "shapeDimensionC": 22, "density": 1, "friction": 2, "restitution": 0.5, @@ -1761,7 +1761,13 @@ "angularDamping": 0.1, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 6, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": -30 }, { "name": "PhysicsVehicle3D", @@ -1779,7 +1785,7 @@ "AheadOffset": 200, "OffsetZ": 0, "RotationAngleOffset": 0, - "ElevationAngleOffset": 5, + "ElevationAngleOffset": 30, "FollowFreeAreaZMax": 0, "FollowFreeAreaZMin": 0, "RotationLogSpeed": 2.0247e-320, @@ -1833,11 +1839,17 @@ "angularDamping": 0.1, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 0, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0 } ], "content": { - "centerLocation": "ModelOrigin", + "centerLocation": "ObjectCenter", "crossfadeDuration": 0, "depth": 245, "height": 245, @@ -1878,11 +1890,17 @@ "angularDamping": 0.1, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 0, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0 } ], "content": { - "centerLocation": "ModelOrigin", + "centerLocation": "ObjectCenter", "crossfadeDuration": 0, "depth": 245, "height": 245, @@ -1923,11 +1941,17 @@ "angularDamping": 4, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 0, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0 } ], "content": { - "centerLocation": "ModelOrigin", + "centerLocation": "ObjectCenter", "crossfadeDuration": 0, "depth": 84, "height": 84, @@ -1968,11 +1992,17 @@ "angularDamping": 4, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 0, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0 } ], "content": { - "centerLocation": "ModelOrigin", + "centerLocation": "ObjectCenter", "crossfadeDuration": 0, "depth": 79, "height": 79, @@ -2028,13 +2058,41 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", + "bodyType": "Static", + "bullet": false, + "fixedRotation": false, + "shape": "Box", + "shapeOrientation": "Z", + "shapeDimensionA": 0, + "shapeDimensionB": 0, + "shapeDimensionC": 0, + "density": 1, + "friction": 50, + "restitution": 0.1, + "linearDamping": 0.1, + "angularDamping": 0.1, + "gravityScale": 1, + "layers": 17, + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 0, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0 + } + ], "content": { "centerLocation": "ObjectCenter", "crossfadeDuration": 0, - "depth": 384, + "depth": 8, "height": 384, - "keepAspectRatio": true, + "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", "modelResourceName": "Road Straight.glb", "originLocation": "TopLeft", @@ -2055,9 +2113,9 @@ "content": { "centerLocation": "ObjectCenter", "crossfadeDuration": 0, - "depth": 384, + "depth": 8, "height": 384, - "keepAspectRatio": true, + "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", "modelResourceName": "Road Crossroad Path.glb", "originLocation": "TopLeft", @@ -2078,9 +2136,9 @@ "content": { "centerLocation": "ObjectCenter", "crossfadeDuration": 0, - "depth": 384, + "depth": 8, "height": 384, - "keepAspectRatio": true, + "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", "modelResourceName": "Road Intersection Path.glb", "originLocation": "TopLeft", @@ -2101,9 +2159,9 @@ "content": { "centerLocation": "ObjectCenter", "crossfadeDuration": 0, - "depth": 384, + "depth": 8, "height": 384, - "keepAspectRatio": true, + "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", "modelResourceName": "Road Bend.glb", "originLocation": "TopLeft", @@ -2157,13 +2215,19 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 1, - "friction": 0.3, + "friction": 50, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 10, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0 } ], "content": { @@ -2893,6 +2957,31 @@ } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "\"Space\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Physics3D::PhysicsVehicle3D::SimulateHandBreakKey" + }, + "parameters": [ + "Player", + "PhysicsVehicle3D" + ] + } + ] + }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", @@ -3720,6 +3809,23 @@ } ], "parameters": [] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DebuggerTools::ConsoleLog" + }, + "parameters": [ + "ToString(Player.Z())", + "\"info\"", + "" + ] + } + ] } ], "layers": [ @@ -3901,7 +4007,7 @@ "gravityX": 0, "gravityY": 0, "gravityZ": -9.8, - "worldScale": 100 + "worldScale": 20 }, { "name": "PhysicsVehicle3D", @@ -44360,19 +44466,17 @@ "initialVariables": [] }, { - "angle": 6, + "angle": 0, "customSize": false, "height": 159.1836734693878, "keepRatio": true, "layer": "", "name": "Player", "persistentUuid": "894bdbd1-6dc0-474b-ae8a-1ced5a9cc957", - "rotationX": -7, - "rotationY": 10, "width": 300, - "x": -992, - "y": 288, - "z": 200, + "x": 1244, + "y": -1428, + "z": 10, "zOrder": 26, "numberProperties": [], "stringProperties": [], @@ -44786,57 +44890,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Coin", - "persistentUuid": "4aa5ac47-d13c-47f3-b278-987402f165b8", - "rotationY": 90, - "width": 0, - "x": 2464, - "y": -704, - "z": 21, - "zOrder": 27, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Coin", - "persistentUuid": "36309f76-fad5-4086-a216-142c7000932a", - "rotationY": 90, - "width": 0, - "x": 2464, - "y": -512, - "z": 21, - "zOrder": 27, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Coin", - "persistentUuid": "13215893-1843-4998-beab-8c9420ab191e", - "rotationY": 90, - "width": 0, - "x": 2464, - "y": -608, - "z": 21, - "zOrder": 27, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 0, "customSize": false, @@ -45582,8 +45635,8 @@ "name": "Van", "persistentUuid": "573153a2-d34f-4f7d-a078-d591f21417dd", "width": 0, - "x": 935, - "y": -1083, + "x": 1267, + "y": -1099, "z": 4, "zOrder": 37, "numberProperties": [], @@ -45598,8 +45651,8 @@ "name": "Van", "persistentUuid": "6c3d140a-a1d9-4713-be38-d77dadcc147a", "width": 0, - "x": 1095, - "y": -1083, + "x": 1427, + "y": -1099, "z": 4, "zOrder": 37, "numberProperties": [], @@ -45765,22 +45818,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 0, - "customSize": true, - "depth": 8, - "height": 384, - "layer": "", - "name": "RoadStraight", - "persistentUuid": "17fb7425-4817-4a27-a352-e2ecb15eae44", - "width": 1152, - "x": 1152, - "y": -1152, - "zOrder": 42, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 0, "customSize": true, @@ -45859,22 +45896,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 90, - "customSize": true, - "depth": 8, - "height": 384, - "layer": "", - "name": "RoadStraight", - "persistentUuid": "7b70847b-a556-49f3-bb48-c73bc31eeea8", - "width": 896, - "x": 2048, - "y": -512, - "zOrder": 42, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 90, "customSize": true, @@ -46046,21 +46067,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 180, - "customSize": false, - "height": 0, - "layer": "", - "name": "RoadIntersectionPath", - "persistentUuid": "c4452ded-2d3e-4846-aae6-f81cf1539dd1", - "width": 0, - "x": 768, - "y": -1152, - "zOrder": 44, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 90, "customSize": false, @@ -46121,21 +46127,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 180, - "customSize": false, - "height": 0, - "layer": "", - "name": "RoadBend", - "persistentUuid": "7b9c3f8f-bc84-4467-8d28-9453b49ca4c8", - "width": 0, - "x": 2304, - "y": -1152, - "zOrder": 45, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": -90, "customSize": false, @@ -46245,18 +46236,244 @@ "angle": 0, "customSize": true, "depth": 100, - "height": 3456, + "height": 7808, "layer": "", "name": "Grass", "persistentUuid": "05276cd6-3502-4c9d-a19e-58308fbbb417", - "width": 4736, - "x": -1792, - "y": -1408, + "width": 9984, + "x": -4480, + "y": -3072, "z": -100, "zOrder": 47, "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "0866ad67-4291-45e1-bd2e-acb5d17c92fc", + "width": 665, + "x": 2163, + "y": -1152, + "z": 134, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "baab3977-f3bb-4c36-a33e-6d2972b42526", + "rotationY": -10, + "width": 768, + "x": 2112, + "y": -1862, + "z": 67, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadCrossroadPath", + "persistentUuid": "5961bfb2-8241-47f6-a034-a6e49fcdc2fb", + "width": 0, + "x": 768, + "y": -1152, + "zOrder": 43, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadBend", + "persistentUuid": "d263b9dc-1a77-4310-9793-2f190eba291b", + "width": 0, + "x": 768, + "y": -2432, + "zOrder": 45, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "a6b06625-0a37-4a1d-9bab-1a76ab861f03", + "width": 1152, + "x": 1152, + "y": -2432, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "c3bad554-72dc-45f0-8a9b-2c66cc1f0aaa", + "width": 896, + "x": 512, + "y": -1792, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "da682bb0-4557-458e-b5ea-b32e8262032c", + "width": 2688, + "x": 1152, + "y": -1152, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "20ad94a9-ce9e-43fc-a13e-f0016396863f", + "width": 0, + "x": 2304, + "y": -2432, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "057fa597-6ecc-4bff-806a-e19758e1663c", + "width": 1152, + "x": 2688, + "y": -2432, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadBend", + "persistentUuid": "354d04e4-df29-449f-91b1-aac59a19afa0", + "width": 0, + "x": 3840, + "y": -1152, + "zOrder": 45, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadBend", + "persistentUuid": "a007e09f-46d4-456a-b9b2-ded15847a436", + "width": 0, + "x": 3840, + "y": -2432, + "zOrder": 45, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "e7d0d051-a9cb-4789-9a0b-ca84f0c2d2e4", + "width": 896, + "x": 3584, + "y": -1792, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "a836ecad-7cb3-4928-b975-bc2e24743699", + "rotationY": -10, + "width": 768, + "x": 2112, + "y": -442, + "z": 67, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "e6b13e3a-d1a3-417e-a9d2-46688e93fd40", + "rotationY": -20, + "width": 384, + "x": -384, + "y": -1792, + "z": 67, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -46269,7 +46486,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.6897782140104574, + "zoomFactor": 0.17708595277544434, "windowMask": false } }, From 8108251d7d4540a2e7cb264570d72db76f709d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Fri, 21 Mar 2025 17:03:35 +0100 Subject: [PATCH 03/21] Fix the camera elevation. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 380 +++++++++++++----- 1 file changed, 281 insertions(+), 99 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 667cfc27a..d70095ba2 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1780,12 +1780,12 @@ "Object3D": "Object3D", "RotationHalfwayDuration": 0.125, "TranslationZHalfwayDuration": 0.125, - "Distance": 600, + "Distance": 450, "LateralOffset": 0, "AheadOffset": 200, "OffsetZ": 0, "RotationAngleOffset": 0, - "ElevationAngleOffset": 30, + "ElevationAngleOffset": 10, "FollowFreeAreaZMax": 0, "FollowFreeAreaZMin": 0, "RotationLogSpeed": 2.0247e-320, @@ -1794,7 +1794,9 @@ "CameraZ": 0, "LocalOffsetY": 200, "LocalOffsetX": 0, - "OffsetY": 200 + "OffsetY": 200, + "ElevationHalfwayDuration": 1, + "IsElevatingWithObject": true } ], "content": { @@ -3834,7 +3836,7 @@ "ambientLightColorG": 200, "ambientLightColorR": 200, "camera3DFarPlaneDistance": 10000, - "camera3DFieldOfView": 55, + "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "cameraType": "perspective", "followBaseLayerCamera": false, @@ -14369,13 +14371,13 @@ "category": "Camera", "extensionNamespace": "", "fullName": "Third person camera", - "gdevelopVersion": "", + "gdevelopVersion": ">=5.5.222", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSI3LDEwIDEsMTMgNywxNiAxMywxMyAiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjEsMTMgMSwyMCA3LDIzIDEzLDIwIDEzLDEzICIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjciIHkxPSIxNiIgeDI9IjciIHkyPSIyMyIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjMxIiB5MT0iMTYiIHgyPSIyMSIgeTI9IjgiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyMSIgeTE9IjI0IiB4Mj0iMzEiIHkyPSIxNiIvPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIyLjcsMjIuNkMyMCwyMS43LDE4LDE5LjEsMTgsMTZjMC0zLjEsMi01LjcsNC43LTYuNiIvPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTE5LjgsMTEuM2MxLjQsMS4xLDIuMiwyLjgsMi4yLDQuN2MwLDEuOS0wLjksMy42LTIuMiw0LjciLz4NCjwvc3ZnPg0K", "name": "ThirdPersonCamera", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Line Hero Pack/Master/SVG/Virtual Reality/94e95d2c318e1f3dc7151a351024e13c574e1e44669c6696aa107d60230073f6_Virtual Reality_3d_vision_eye_vr.svg", "shortDescription": "Move the camera to look at an object from a given distance.", - "version": "1.5.0", + "version": "1.6.0", "description": [ "Move the camera to look at an object from a given distance with a rotation and an elevation angles.", "", @@ -14948,6 +14950,18 @@ "" ] }, + { + "type": { + "value": "ThirdPersonCamera::ThirdPersonCamera::SetElevationHalfwayDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ElevationHalfwayDuration", + "" + ] + }, { "type": { "value": "ThirdPersonCamera::ThirdPersonCamera::SetTranslationZHalfwayDuration" @@ -14989,22 +15003,23 @@ "conditions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::PropertyHasJustBeenCreated" + "value": "BooleanVariable" }, "parameters": [ - "Object", - "Behavior" + "HasJustBeenCreated", + "True", + "" ] } ], "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyHasJustBeenCreated" + "value": "SetBooleanVariable" }, "parameters": [ - "Object", - "Behavior", + "HasJustBeenCreated", + "False", "" ] }, @@ -15022,11 +15037,10 @@ }, { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyCameraZ" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "CameraZ", "=", "Object.Object3D::CenterZ()" ] @@ -15039,11 +15053,12 @@ { "type": { "inverted": true, - "value": "ThirdPersonCamera::ThirdPersonCamera::PropertyIsCalledManually" + "value": "BooleanVariable" }, "parameters": [ - "Object", - "Behavior" + "IsCalledManually", + "True", + "" ] } ], @@ -15111,11 +15126,11 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyIsCalledManually" + "value": "SetBooleanVariable" }, "parameters": [ - "Object", - "Behavior", + "IsCalledManually", + "False", "" ] }, @@ -15186,11 +15201,10 @@ "conditions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::PropertyCameraZ" + "value": "NumberVariable" }, "parameters": [ - "Object", - "Behavior", + "CameraZ", "<", "Object.Behavior::FreeAreaZMin()" ] @@ -15199,11 +15213,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyCameraZ" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "CameraZ", "=", "Object.Behavior::FreeAreaZMin() + (CameraZ - Object.Behavior::FreeAreaZMin()) * exp(TimeDelta() * TranslationZLogSpeed)" ] @@ -15215,11 +15228,10 @@ "conditions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::PropertyCameraZ" + "value": "NumberVariable" }, "parameters": [ - "Object", - "Behavior", + "CameraZ", ">", "Object.Behavior::FreeAreaZMax()" ] @@ -15228,11 +15240,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyCameraZ" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "CameraZ", "=", "Object.Behavior::FreeAreaZMax() + (CameraZ - Object.Behavior::FreeAreaZMax()) * exp(TimeDelta() * TranslationZLogSpeed)" ] @@ -15258,28 +15269,55 @@ "conditions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::PropertyIsRotatingWithObject" + "value": "BooleanVariable" }, "parameters": [ - "Object", - "Behavior" + "IsRotatingWithObject", + "True", + "" ] } ], "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyTargetedRotationAngle" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "TargetedRotationAngle", "=", "Object.Angle()" ] } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "IsElevatingWithObject", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "TargetedElevationAngle", + "=", + "Object.Object3D::RotationY()" + ] + } + ] + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], @@ -15289,23 +15327,33 @@ "value": "SetNumberVariable" }, "parameters": [ - "CameraAngle", + "CameraRotationAngle", "=", "TargetedRotationAngle + 90 + RotationAngleOffset + AngleDifference(CameraAngle(Object.Layer()), TargetedRotationAngle + 90 + RotationAngleOffset) * exp(TimeDelta() * RotationLogSpeed)" ] }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CameraElevationAngle", + "=", + "TargetedElevationAngle + ElevationAngleOffset + AngleDifference(90 - Scene3D::CameraRotationX(Object.Layer()), TargetedElevationAngle + ElevationAngleOffset) * exp(TimeDelta() * ElevationLogSpeed)" + ] + }, { "type": { "value": "ThirdPersonCamera::LookFromDistanceAtPosition3D" }, "parameters": [ "", - "Object.CenterX() + ThirdPersonCamera::RotatedX(CameraAngle, OffsetX, -OffsetY)", - "Object.CenterY() + ThirdPersonCamera::RotatedY(CameraAngle, OffsetX, -OffsetY)", + "Object.CenterX() + ThirdPersonCamera::RotatedX(CameraRotationAngle, OffsetX, -OffsetY)", + "Object.CenterY() + ThirdPersonCamera::RotatedY(CameraRotationAngle, OffsetX, -OffsetY)", "CameraZ + OffsetZ", "Distance", - "CameraAngle", - "Object.Object3D::RotationY() + ElevationAngleOffset", + "CameraRotationAngle", + "CameraElevationAngle", "", "" ] @@ -15314,7 +15362,12 @@ "variables": [ { "folded": true, - "name": "CameraAngle", + "name": "CameraRotationAngle", + "type": "number", + "value": 0 + }, + { + "name": "CameraElevationAngle", "type": "number", "value": 0 } @@ -15352,22 +15405,22 @@ "conditions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::PropertyIsRotatingWithObject" + "value": "BooleanVariable" }, "parameters": [ - "Object", - "Behavior" + "IsRotatingWithObject", + "True", + "" ] } ], "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyTargetedRotationAngle" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "TargetedRotationAngle", "=", "Object.Angle()" ] @@ -15583,22 +15636,122 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyRotationHalfwayDuration" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "RotationHalfwayDuration", "=", "Value" ] }, { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyRotationLogSpeed" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "RotationLogSpeed", + "=", + "log(0.5) / Value" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ThirdPersonCamera::ThirdPersonCamera", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the halfway time for elevation rotation of the object.", + "fullName": "Halfway time for elevation rotation", + "functionType": "ExpressionAndCondition", + "group": "Third person camera configuration", + "name": "ElevationHalfwayDuration", + "sentence": "the halfway time for elevation rotation", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "ElevationHalfwayDuration" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ThirdPersonCamera::ThirdPersonCamera", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ElevationHalfwayDuration", + "name": "SetElevationHalfwayDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "ln((1 - speed)) = ln(1 / 2) / halfwatTime" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "ElevationHalfwayDuration", + "=", + "Value" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "ElevationLogSpeed", "=", "log(0.5) / Value" ] @@ -15687,22 +15840,20 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyTranslationZHalfwayDuration" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "TranslationZHalfwayDuration", "=", "Value" ] }, { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyTranslationZLogSpeed" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "TranslationZLogSpeed", "=", "log(0.5) / Value" ] @@ -15863,11 +16014,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyFollowFreeAreaZMax" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "FollowFreeAreaZMax", "=", "Value" ] @@ -15944,11 +16094,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyFollowFreeAreaZMin" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "FollowFreeAreaZMin", "=", "Value" ] @@ -16025,11 +16174,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyDistance" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "Distance", "=", "Value" ] @@ -16106,11 +16254,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyOffsetX" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "OffsetX", "=", "Value" ] @@ -16187,11 +16334,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyOffsetY" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "OffsetY", "=", "Value" ] @@ -16268,11 +16414,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyOffsetZ" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "OffsetZ", "=", "Value" ] @@ -16349,11 +16494,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyRotationAngleOffset" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "RotationAngleOffset", "=", "Value" ] @@ -16430,11 +16574,10 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyElevationAngleOffset" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "ElevationAngleOffset", "=", "Value" ] @@ -16511,22 +16654,21 @@ "actions": [ { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyTargetedRotationAngle" + "value": "SetNumberVariable" }, "parameters": [ - "Object", - "Behavior", + "TargetedRotationAngle", "=", "Value" ] }, { "type": { - "value": "ThirdPersonCamera::ThirdPersonCamera::SetPropertyIsRotatingWithObject" + "value": "SetBooleanVariable" }, "parameters": [ - "Object", - "Behavior", + "IsRotatingWithObject", + "False", "" ] } @@ -16571,6 +16713,16 @@ "extraInformation": [], "name": "RotationHalfwayDuration" }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Halfway time for elevation rotation", + "description": "", + "group": "Catch-up speed", + "extraInformation": [], + "name": "ElevationHalfwayDuration" + }, { "value": "0.125", "type": "Number", @@ -16673,6 +16825,16 @@ "hidden": true, "name": "RotationLogSpeed" }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ElevationLogSpeed" + }, { "value": "", "type": "Number", @@ -16723,6 +16885,15 @@ "extraInformation": [], "name": "IsRotatingWithObject" }, + { + "value": "false", + "type": "Boolean", + "label": "Automatically rotate the camera with the object (elevation)", + "description": "", + "group": "", + "extraInformation": [], + "name": "IsElevatingWithObject" + }, { "value": "0", "type": "Number", @@ -16733,6 +16904,17 @@ "extraInformation": [], "hidden": true, "name": "TargetedRotationAngle" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Targeted camera rotation angle", + "description": "When this angle is set, the camera follow this value instead of the object angle.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TargetedElevationAngle" } ], "sharedPropertyDescriptors": [] @@ -44466,7 +44648,7 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 133, "customSize": false, "height": 159.1836734693878, "keepRatio": true, @@ -44474,8 +44656,8 @@ "name": "Player", "persistentUuid": "894bdbd1-6dc0-474b-ae8a-1ced5a9cc957", "width": 300, - "x": 1244, - "y": -1428, + "x": 1167, + "y": 106, "z": 10, "zOrder": 26, "numberProperties": [], @@ -46210,8 +46392,8 @@ "name": "CommonTree", "persistentUuid": "e45f54e4-ed85-40d5-98eb-a3d7c77285d3", "width": 0, - "x": 1422, - "y": -136, + "x": 1495, + "y": -270, "zOrder": 46, "numberProperties": [], "stringProperties": [], @@ -46486,7 +46668,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.17708595277544434, + "zoomFactor": 0.5843784410741111, "windowMask": false } }, From e4059d1107d300d54673fb625f18d5e0fe712b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Fri, 21 Mar 2025 18:59:15 +0100 Subject: [PATCH 04/21] Add more gravity. --- examples/3d-car-coin-hunt/3d-car-coin-hunt.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index d70095ba2..daa9c4295 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1796,7 +1796,7 @@ "LocalOffsetX": 0, "OffsetY": 200, "ElevationHalfwayDuration": 1, - "IsElevatingWithObject": true + "IsElevatingWithObject": false } ], "content": { @@ -1834,7 +1834,7 @@ "shapeDimensionA": 0, "shapeDimensionB": 0, "shapeDimensionC": 0, - "density": 1, + "density": 5, "friction": 0.3, "restitution": 0.1, "linearDamping": 0.1, @@ -1885,7 +1885,7 @@ "shapeDimensionA": 0, "shapeDimensionB": 0, "shapeDimensionC": 0, - "density": 1, + "density": 5, "friction": 0.3, "restitution": 0.1, "linearDamping": 0.1, @@ -1936,7 +1936,7 @@ "shapeDimensionA": 0, "shapeDimensionB": 0, "shapeDimensionC": 0, - "density": 1, + "density": 5, "friction": 0.5, "restitution": 0.2, "linearDamping": 7, @@ -1987,7 +1987,7 @@ "shapeDimensionA": 0, "shapeDimensionB": 0, "shapeDimensionC": 0, - "density": 1, + "density": 5, "friction": 0.3, "restitution": 0.2, "linearDamping": 7, @@ -2074,7 +2074,7 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 1, - "friction": 50, + "friction": 5, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, @@ -2217,7 +2217,7 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 1, - "friction": 50, + "friction": 5, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, From 2728b9d4d26cc54d83893ba05d9d87059daeaf6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 1 Apr 2025 13:25:08 +0200 Subject: [PATCH 05/21] Use the default gear ratios. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 1147 ++++++----------- 1 file changed, 430 insertions(+), 717 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index daa9c4295..63e109d28 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1853,16 +1853,16 @@ "content": { "centerLocation": "ObjectCenter", "crossfadeDuration": 0, - "depth": 245, - "height": 245, - "keepAspectRatio": true, + "depth": 282, + "height": 128, + "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", "modelResourceName": "Large Building F2.glb", "originLocation": "ModelOrigin", "rotationX": 90, "rotationY": 0, "rotationZ": 0, - "width": 245, + "width": 384, "animations": [] } }, @@ -1904,16 +1904,16 @@ "content": { "centerLocation": "ObjectCenter", "crossfadeDuration": 0, - "depth": 245, - "height": 245, - "keepAspectRatio": true, + "depth": 316, + "height": 256, + "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", "modelResourceName": "Large Building A.glb", "originLocation": "ModelOrigin", "rotationX": 90, "rotationY": 0, "rotationZ": 0, - "width": 245, + "width": 384, "animations": [] } }, @@ -14377,14 +14377,15 @@ "name": "ThirdPersonCamera", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Line Hero Pack/Master/SVG/Virtual Reality/94e95d2c318e1f3dc7151a351024e13c574e1e44669c6696aa107d60230073f6_Virtual Reality_3d_vision_eye_vr.svg", "shortDescription": "Move the camera to look at an object from a given distance.", - "version": "1.6.0", + "version": "1.7.0", "description": [ "Move the camera to look at an object from a given distance with a rotation and an elevation angles.", "", "It can be useful for:", - "- Third person camera", - "- Isometric-like point of view", - "" + "- 3D platformer games ([open the project online](https://editor.gdevelop.io/?project=example://3d-platformer))", + "- 3D racing games ([open the project online](https://editor.gdevelop.io/?project=example://3d-car-coin-hunt))", + "- Orbit camera controls ([open the project online](https://editor.gdevelop.io/?project=example://3d-tile-based-city-builder))", + "- Isometric-like point of view ([open the project online](https://editor.gdevelop.io/?project=example://3d-road-crosser))" ], "origin": { "identifier": "ThirdPersonCamera", @@ -44135,518 +44136,6 @@ "associatedLayout": "Game", "name": "Level1", "instances": [ - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "a9a4887f-ca10-45a0-9c7b-0c7f37c70a8f", - "width": 256, - "x": -1088, - "y": 0, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "bcfdd521-fe50-4e3f-b91a-9d73b72fe96b", - "width": 256, - "x": -128, - "y": 64, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "97210e1e-0fe2-4470-b649-52fd75667fb5", - "width": 256, - "x": -768, - "y": -704, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "3e217ee2-789d-4101-bfe1-7d1f93497ca9", - "width": 256, - "x": -64, - "y": -640, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "56cbc3bf-8596-4964-9bb1-d435ef26deef", - "width": 256, - "x": -1024, - "y": -704, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "31650634-da10-4bef-a53d-2fbc7f00c4a6", - "width": 256, - "x": -896, - "y": 64, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "4674c98e-f9ad-4c4a-8268-d5501967fa2e", - "width": 256, - "x": -640, - "y": 64, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "0c347560-65a4-4440-baff-086fd1567d09", - "width": 256, - "x": -384, - "y": 64, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "f33beccc-0f5b-4b92-a193-ca3289b4a14d", - "width": 256, - "x": -1088, - "y": -512, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "11a0284f-62eb-4ab5-8952-50ec50b45ed0", - "width": 256, - "x": -64, - "y": -384, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "521d809c-97fb-42e1-9c23-2c6c9222c207", - "width": 256, - "x": -512, - "y": -704, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "65fffd98-3fe2-461b-9f14-c4cac8ba87f9", - "width": 256, - "x": 1216, - "y": 1280, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "20da10ce-0b97-4329-a824-7fdf6bd740c2", - "width": 256, - "x": 2176, - "y": 1344, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "3bfc6886-f8b4-4139-a58d-53d6edd675f0", - "width": 256, - "x": 2048, - "y": 576, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "11df5d8d-69e9-4c57-ab85-2915eb88aaa9", - "width": 256, - "x": 512, - "y": 64, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "1a6ec265-0739-4bc3-9944-0bb45851a49f", - "width": 256, - "x": 1408, - "y": 1344, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "92bba79a-e89e-4535-b63e-3fe3ce6e911f", - "width": 256, - "x": 1664, - "y": 1344, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "6cd00539-0275-4d78-a788-e9b28b9bd55c", - "width": 256, - "x": 1920, - "y": 1344, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "0c8e2b36-716f-425d-8805-1f1203ee27f2", - "width": 256, - "x": 448, - "y": -128, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "2d09b44a-ed70-4e35-94a2-05f8dcccfc0b", - "width": 256, - "x": 1792, - "y": 576, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "6838257f-94d5-458a-ab10-21c72b85a3f8", - "width": 256, - "x": 704, - "y": 0, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "05746046-8c04-48e2-a104-fda74c0fcba0", - "width": 256, - "x": 1280, - "y": 576, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "d2139f22-6fc5-43bc-93f5-88b408a0da00", - "width": 256, - "x": 1216, - "y": 768, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "a13ec1aa-8a54-4826-8e82-c7b0f5e1f576", - "width": 256, - "x": 448, - "y": -640, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "45b8dfbf-ccf4-4465-96c5-342d6cdaff5e", - "width": 256, - "x": 448, - "y": -384, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "92d6018a-a0d6-40fc-8347-7e08a20f9f54", - "width": 256, - "x": 640, - "y": -704, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "ded079a6-f2ff-4d59-a779-86ad03033732", - "width": 256, - "x": 512, - "y": 1344, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "903808f8-da6d-4bff-ac04-70db3de11660", - "width": 256, - "x": 448, - "y": 1152, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "fd42a88c-08da-4261-875f-ce4654e55420", - "width": 256, - "x": 704, - "y": 1280, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "ea2b887a-cdbb-4a08-85be-f387a5da95df", - "width": 256, - "x": 704, - "y": 768, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "0cdb6e4b-e015-4c82-9126-12cc1c0a9168", - "width": 256, - "x": 704, - "y": 1024, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 201.7647033558585, - "height": 128, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "90cabc2e-ff2d-4902-848a-3b2ca39c81c4", - "width": 256, - "x": 448, - "y": 640, - "zOrder": 25, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 133, "customSize": false, @@ -45377,198 +44866,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 180, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "0923c025-2301-44f6-9c32-91043e3cf9c5", - "width": 256, - "x": 1536, - "y": 576, - "zOrder": 30, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 180, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "a94497ae-b7eb-4df8-840b-0ac8382f6327", - "width": 256, - "x": 640, - "y": 576, - "zOrder": 30, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 180, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "a567d019-c172-4b8f-bfed-654c28709043", - "width": 256, - "x": -256, - "y": -704, - "zOrder": 30, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "c1cd9bb9-62e8-4e06-8503-92aac61c7262", - "width": 256, - "x": 1216, - "y": 1024, - "zOrder": 30, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "c3a83986-488c-4812-ae8c-5415ad20f08e", - "width": 256, - "x": 448, - "y": 896, - "zOrder": 30, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "594ae657-a1bb-436f-a4df-319949c2c14a", - "width": 256, - "x": -1088, - "y": -256, - "zOrder": 30, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "f4ccec6d-6fd1-4756-b079-8950ab54891e", - "width": 256, - "x": 704, - "y": -256, - "zOrder": 31, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "76dfc897-cfb4-491a-8327-11380541a5ce", - "width": 256, - "x": 704, - "y": -512, - "zOrder": 32, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "139dda3d-2ac7-42d4-91e0-ab44ff464a5f", - "width": 256, - "x": -64, - "y": -128, - "zOrder": 33, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "8c1e8064-f239-4db0-97b0-682bea722b0d", - "width": 256, - "x": 2240, - "y": 640, - "zOrder": 34, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "395f9f8d-19bc-4927-a103-9550563fd1c6", - "width": 256, - "x": 2240, - "y": 896, - "zOrder": 35, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": true, - "depth": 180.14706219218877, - "height": 128, - "layer": "", - "name": "LargeBuildingF", - "persistentUuid": "3ca01a52-6ec5-43ea-9285-b3aa1ef17c15", - "width": 256, - "x": 2240, - "y": 1152, - "zOrder": 36, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 180, "customSize": false, @@ -46656,6 +45953,422 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "95ef1e5a-74b1-4e83-83b9-b2efbf806d58", + "width": 0, + "x": -960, + "y": 0, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "febbfff0-96f7-4aa7-8824-e2c255f59eb0", + "width": 0, + "x": -576, + "y": 48, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "e6c94a26-8c81-4c05-8e45-151e85f1b377", + "width": 0, + "x": -128, + "y": -320, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "7fbca3aa-2a94-4cb9-b9e1-60168fcdd3a6", + "width": 0, + "x": -192, + "y": 0, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "4f4d0089-55cf-4503-801d-40c9028a06b4", + "width": 0, + "x": -1072, + "y": -320, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "42935809-851d-4def-8303-3db218ba2166", + "width": 0, + "x": -960, + "y": -640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "86397906-b3ad-405f-813d-586b8a72fbed", + "width": 0, + "x": -192, + "y": -640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "8c3e300a-b991-44e1-8d2f-c12129ca95d4", + "width": 0, + "x": -576, + "y": -689, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "6c1f5561-24c8-4305-a22c-8604162282fa", + "width": 0, + "x": 576, + "y": 79, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "7bcc160b-2587-452e-b7e4-68b584cbc754", + "width": 0, + "x": 576, + "y": -689, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "5d87155a-1c5d-41b6-bc1f-e102fef4e92f", + "width": 0, + "x": 512, + "y": -448, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "d7b328c3-82a1-4035-b6bc-80091cb3ccb1", + "width": 0, + "x": 689, + "y": -448, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "fd10ab85-50ef-448a-8074-4464bb4cda43", + "width": 0, + "x": 576, + "y": -128, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "f38817e1-18ec-4228-8963-c7695c2af241", + "width": 0, + "x": 576, + "y": 1328, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "649c4082-ff47-44cd-b0f2-0bd27024ac52", + "width": 0, + "x": 576, + "y": 591, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "a048fa2c-7f7e-490e-86f3-2e75bc2f8a5c", + "width": 0, + "x": 512, + "y": 832, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "f98ac4e1-de20-46bf-886b-52017a7ae87a", + "width": 0, + "x": 689, + "y": 832, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "2353214c-8af5-4b43-8ab8-b2cec80398da", + "width": 0, + "x": 576, + "y": 1152, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "a0ee9528-b6c5-4b6f-8d46-03b8b8cf3136", + "width": 0, + "x": 1344, + "y": 1280, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "5509575e-7090-4fe2-a614-e02f10db8663", + "width": 0, + "x": 1728, + "y": 1328, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "6d1b66fc-01e6-46ae-8c77-09900f3d6e33", + "width": 0, + "x": 2176, + "y": 960, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "4766be12-e1f3-44ec-89a9-6fc331da38d5", + "width": 0, + "x": 2112, + "y": 1280, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "3940ad48-378a-48e3-9d92-cedcb10308d2", + "width": 0, + "x": 1232, + "y": 960, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "3e4187c0-4978-4d33-a7f7-64ea7ff9548d", + "width": 0, + "x": 1344, + "y": 640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "1406f52f-153c-4b10-baa4-6b5fdda54048", + "width": 0, + "x": 2112, + "y": 640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "ccd4a0fa-581c-4933-a10b-f2c1ef120793", + "width": 0, + "x": 1728, + "y": 591, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -46668,7 +46381,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.5843784410741111, + "zoomFactor": 0.3553434558817108, "windowMask": false } }, From 2d5c602f9c2fad353215e1b919266a0ccd826064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Wed, 2 Apr 2025 13:36:16 +0200 Subject: [PATCH 06/21] Add stick controls. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 2245 +++++++++++++++-- 1 file changed, 2100 insertions(+), 145 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 63e109d28..a3947dd34 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1123,7 +1123,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.6040838749988865, + "zoomFactor": 0.6244537826599987, "windowMask": false }, "objectsGroups": [ @@ -2640,7 +2640,8 @@ "", "\"Level1\"", "0", - "0" + "0", + "" ] } ] @@ -2985,7 +2986,6 @@ ] }, { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -3022,19 +3022,17 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateAccelerationStick" + "value": "Physics3D::PhysicsVehicle3D::SimulateAcceleratorStick" }, "parameters": [ "Player", - "PhysicsCar", - "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")", - "" + "PhysicsVehicle3D", + "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" ] } ] }, { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -3053,19 +3051,17 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateSteeringStick" + "value": "Physics3D::PhysicsVehicle3D::SimulateSteeringStick" }, "parameters": [ "Player", - "PhysicsCar", - "Gamepads::StickForceX(1, \"Left\")", - "" + "PhysicsVehicle3D", + "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" ] } ] }, { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -3224,13 +3220,12 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateAccelerationStick" + "value": "Physics3D::PhysicsVehicle3D::SimulateAcceleratorStick" }, "parameters": [ "Player", - "PhysicsCar", - "-PedalJoystick.StickForceY()", - "" + "PhysicsVehicle3D", + "-PedalJoystick.StickForceY()" ] } ] @@ -3251,13 +3246,12 @@ "actions": [ { "type": { - "value": "PhysicsCar::PhysicsCar::SimulateSteeringStick" + "value": "Physics3D::PhysicsVehicle3D::SimulateSteeringStick" }, "parameters": [ "Player", - "PhysicsCar", - "SteeringJoystick.StickForceX()", - "" + "PhysicsVehicle3D", + "SteeringJoystick.StickForceX()" ] } ] @@ -3835,7 +3829,7 @@ "ambientLightColorB": 200, "ambientLightColorG": 200, "ambientLightColorR": 200, - "camera3DFarPlaneDistance": 10000, + "camera3DFarPlaneDistance": 5000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "cameraType": "perspective", @@ -44230,7 +44224,7 @@ "persistentUuid": "d392011b-0dab-4705-93c6-1565cede70d6", "rotationY": 90, "width": 0, - "x": -1280, + "x": -1664, "y": 1120, "z": 21, "zOrder": 27, @@ -44247,8 +44241,8 @@ "persistentUuid": "4e80ac91-a9c6-421d-84fb-da675ade03ca", "rotationY": 90, "width": 0, - "x": -1280, - "y": 1312, + "x": -1661, + "y": 1309, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44265,7 +44259,7 @@ "rotationY": 90, "width": 0, "x": -864, - "y": 1536, + "y": 3584, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44282,7 +44276,7 @@ "rotationY": 90, "width": 0, "x": -1056, - "y": 1536, + "y": 3584, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44434,7 +44428,7 @@ "persistentUuid": "37983f2a-555b-4705-a7de-88a8f5145ed4", "rotationY": 90, "width": 0, - "x": -1280, + "x": -1664, "y": 1216, "z": 21, "zOrder": 27, @@ -44452,7 +44446,7 @@ "rotationY": 90, "width": 0, "x": -960, - "y": 1536, + "y": 3584, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44469,7 +44463,7 @@ "rotationY": 90, "width": 0, "x": 2240, - "y": 1536, + "y": 1920, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44486,7 +44480,7 @@ "rotationY": 90, "width": 0, "x": 2048, - "y": 1536, + "y": 1920, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44503,7 +44497,7 @@ "rotationY": 90, "width": 0, "x": 2144, - "y": 1536, + "y": 1920, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44537,7 +44531,7 @@ "rotationY": 90, "width": 0, "x": 2464, - "y": 1312, + "y": 1696, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44570,7 +44564,7 @@ "persistentUuid": "01564816-db2d-4222-9271-691a782814ab", "rotationY": 90, "width": 0, - "x": -1280, + "x": -1664, "y": -704, "z": 21, "zOrder": 27, @@ -44587,7 +44581,7 @@ "persistentUuid": "4112fc62-34be-4269-b843-94d7ef614ad2", "rotationY": 90, "width": 0, - "x": -1280, + "x": -1664, "y": -512, "z": 21, "zOrder": 27, @@ -44604,7 +44598,7 @@ "persistentUuid": "ae78128d-84ce-4d60-8baa-f0b7edac934c", "rotationY": 90, "width": 0, - "x": -1280, + "x": -1664, "y": -608, "z": 21, "zOrder": 27, @@ -44741,7 +44735,7 @@ "rotationY": 90, "width": 0, "x": 736, - "y": 1664, + "y": 2048, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44758,7 +44752,7 @@ "rotationY": 90, "width": 0, "x": 640, - "y": 1664, + "y": 2048, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44775,7 +44769,7 @@ "rotationY": 90, "width": 0, "x": 544, - "y": 1664, + "y": 2048, "z": 21, "zOrder": 27, "numberProperties": [], @@ -44792,7 +44786,7 @@ "rotationY": 90, "width": 0, "x": 448, - "y": 1664, + "y": 2048, "z": 21, "zOrder": 27, "numberProperties": [], @@ -45083,7 +45077,7 @@ "persistentUuid": "24c0eb97-df17-4ec3-b525-6775f3e4b171", "width": 0, "x": -168, - "y": 1474, + "y": 3522, "z": 4, "zOrder": 37, "numberProperties": [], @@ -45099,7 +45093,7 @@ "persistentUuid": "3867bff0-bc6b-4cde-bd55-aa0e1acb951f", "width": 0, "x": -392, - "y": 1474, + "y": 3522, "z": 4, "zOrder": 37, "numberProperties": [], @@ -45211,7 +45205,7 @@ "persistentUuid": "c2d673cd-0b27-4ab6-b26b-641469b9514b", "width": 0, "x": 1962, - "y": 1474, + "y": 1858, "z": 4, "zOrder": 37, "numberProperties": [], @@ -45227,7 +45221,7 @@ "persistentUuid": "f1ea9686-2334-44fb-8dc3-981db82aea0d", "width": 0, "x": 1834, - "y": 1474, + "y": 1858, "z": 4, "zOrder": 39, "numberProperties": [], @@ -45242,9 +45236,9 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "8f939289-ce00-49c8-8646-515c85580db9", - "width": 1152, - "x": -1152, - "y": 1408, + "width": 1536, + "x": -1536, + "y": 3456, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45259,7 +45253,7 @@ "persistentUuid": "cb18e3ac-db07-44c5-8746-0baeeadebe74", "width": 0, "x": 384, - "y": 1408, + "y": 1792, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45275,7 +45269,7 @@ "persistentUuid": "dff9b457-42ce-4d46-a93e-a8bd0f44030f", "width": 1152, "x": 1152, - "y": 1408, + "y": 1792, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45305,8 +45299,8 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "9ed137cb-69e5-4d3c-8acd-f81b10baedc1", - "width": 1152, - "x": -1152, + "width": 1536, + "x": -1536, "y": -1152, "zOrder": 42, "numberProperties": [], @@ -45383,9 +45377,9 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "e9045c79-8c9f-433c-87f1-489cd7c5d8b5", - "width": 896, - "x": 2048, - "y": 768, + "width": 1280, + "x": 1856, + "y": 960, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45399,9 +45393,9 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "f7b9a20a-970f-46a1-a0a9-2345c3082812", - "width": 896, - "x": 512, - "y": 768, + "width": 1280, + "x": 320, + "y": 960, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45415,9 +45409,9 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "c382140e-8041-4b53-b182-4d3afef43ceb", - "width": 896, - "x": -256, - "y": 768, + "width": 1280, + "x": -448, + "y": 960, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45432,8 +45426,8 @@ "name": "RoadStraight", "persistentUuid": "f97d31b2-91e4-4d98-8ec8-894830e52c4f", "width": 896, - "x": -1792, - "y": 768, + "x": -2176, + "y": 1152, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -45448,7 +45442,7 @@ "name": "RoadStraight", "persistentUuid": "92323d5f-fd91-4f0c-b2ba-7bed3b8a28a9", "width": 896, - "x": -1792, + "x": -2176, "y": -512, "zOrder": 42, "numberProperties": [], @@ -45463,8 +45457,8 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "9ce5b297-a47a-4ca1-978f-48440f38ed59", - "width": 1152, - "x": -1152, + "width": 1536, + "x": -1536, "y": 128, "zOrder": 42, "numberProperties": [], @@ -45510,22 +45504,7 @@ "persistentUuid": "eb323bf0-2c9f-470d-8f30-7b79ca5b1c15", "width": 0, "x": 768, - "y": 1408, - "zOrder": 44, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "RoadIntersectionPath", - "persistentUuid": "8a20020b-9ddf-4dd6-8eed-7203403731d5", - "width": 0, - "x": 0, - "y": 1408, + "y": 1792, "zOrder": 44, "numberProperties": [], "stringProperties": [], @@ -45554,7 +45533,7 @@ "name": "RoadIntersectionPath", "persistentUuid": "a5d5abcc-c6db-41b5-9eed-36f231b1422f", "width": 0, - "x": -1536, + "x": -1920, "y": 128, "zOrder": 44, "numberProperties": [], @@ -45584,38 +45563,8 @@ "name": "RoadBend", "persistentUuid": "e22cf8f0-a157-4ec5-9e42-663c7f0af27b", "width": 0, - "x": -1536, - "y": 1408, - "zOrder": 45, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": false, - "height": 0, - "layer": "", - "name": "RoadBend", - "persistentUuid": "97f7e8a7-7047-4992-bcc9-dbf5214b5414", - "width": 0, - "x": -1536, - "y": -1152, - "zOrder": 45, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": -90, - "customSize": false, - "height": 0, - "layer": "", - "name": "RoadBend", - "persistentUuid": "4776e313-1e93-4503-93d4-44d6489b243f", - "width": 0, - "x": 2304, - "y": 1408, + "x": -1920, + "y": 3456, "zOrder": 45, "numberProperties": [], "stringProperties": [], @@ -45629,8 +45578,8 @@ "name": "CommonTree", "persistentUuid": "52d896d4-1113-4367-94bf-9398965ca670", "width": 0, - "x": -820, - "y": 674, + "x": -989, + "y": 765, "zOrder": 46, "numberProperties": [], "stringProperties": [], @@ -45659,8 +45608,8 @@ "name": "CommonTree", "persistentUuid": "79f0c61e-6546-421b-bdb9-fef257734726", "width": 0, - "x": -767, - "y": 1240, + "x": -1057, + "y": 1403, "zOrder": 46, "numberProperties": [], "stringProperties": [], @@ -45715,13 +45664,15 @@ "angle": 0, "customSize": true, "depth": 100, - "height": 7808, + "height": 10496, "layer": "", + "locked": true, "name": "Grass", "persistentUuid": "05276cd6-3502-4c9d-a19e-58308fbbb417", - "width": 9984, + "sealed": true, + "width": 10624, "x": -4480, - "y": -3072, + "y": -4480, "z": -100, "zOrder": 47, "numberProperties": [], @@ -45964,7 +45915,7 @@ "persistentUuid": "95ef1e5a-74b1-4e83-83b9-b2efbf806d58", "width": 0, "x": -960, - "y": 0, + "y": -128, "zOrder": 48, "numberProperties": [], "stringProperties": [], @@ -45980,7 +45931,7 @@ "persistentUuid": "febbfff0-96f7-4aa7-8824-e2c255f59eb0", "width": 0, "x": -576, - "y": 48, + "y": 64, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46027,7 +45978,7 @@ "name": "LargeBuildingF", "persistentUuid": "4f4d0089-55cf-4503-801d-40c9028a06b4", "width": 0, - "x": -1072, + "x": -1472, "y": -320, "zOrder": 49, "numberProperties": [], @@ -46172,7 +46123,7 @@ "persistentUuid": "f38817e1-18ec-4228-8963-c7695c2af241", "width": 0, "x": 576, - "y": 1328, + "y": 1728, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46242,22 +46193,6 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 0, - "customSize": false, - "height": 0, - "keepRatio": true, - "layer": "", - "name": "LargeBuildingA", - "persistentUuid": "a0ee9528-b6c5-4b6f-8d46-03b8b8cf3136", - "width": 0, - "x": 1344, - "y": 1280, - "zOrder": 48, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 0, "customSize": false, @@ -46268,7 +46203,7 @@ "persistentUuid": "5509575e-7090-4fe2-a614-e02f10db8663", "width": 0, "x": 1728, - "y": 1328, + "y": 1712, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46283,7 +46218,7 @@ "name": "LargeBuildingA", "persistentUuid": "6d1b66fc-01e6-46ae-8c77-09900f3d6e33", "width": 0, - "x": 2176, + "x": 2048, "y": 960, "zOrder": 50, "numberProperties": [], @@ -46300,7 +46235,7 @@ "persistentUuid": "4766be12-e1f3-44ec-89a9-6fc331da38d5", "width": 0, "x": 2112, - "y": 1280, + "y": 1664, "zOrder": 48, "numberProperties": [], "stringProperties": [], @@ -46369,6 +46304,2026 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "3554af30-b961-4eaf-9cf5-0ad3540bff95", + "width": 0, + "x": -1344, + "y": 0, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "e7a083e6-6a13-49ad-a89d-a308b067bc39", + "width": 0, + "x": -1344, + "y": -640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "4a6b79d5-04d7-41dc-b298-f1c4b4489cff", + "width": 0, + "x": -576, + "y": -128, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "a8218166-4a3c-472b-a07d-204129798258", + "width": 0, + "x": -576, + "y": -512, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "e908618e-e7cc-4045-8b46-94621aaddd5f", + "width": 0, + "x": -1280, + "y": -320, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "8b08aee5-40d7-4e88-baaa-724339da2676", + "width": 0, + "x": 1408, + "y": 960, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "9e417898-319c-4686-821f-0d3aae0cf39c", + "width": 0, + "x": 1728, + "y": 768, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "129fd98d-d1a0-437e-a303-34c6704dca48", + "width": 0, + "x": 1600, + "y": 1536, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadCrossroadPath", + "persistentUuid": "db65c2fe-8864-4796-9737-ebcb9e7ef71b", + "width": 0, + "x": 0, + "y": 1792, + "zOrder": 43, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "bc0f10ae-6f79-40a2-bcd9-454922ec5aa7", + "width": 0, + "x": 640, + "y": 1472, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "f4fe86be-f476-419f-a8c2-cdb7290fb99a", + "width": 0, + "x": 448, + "y": 1472, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "b8cbd6c9-29ac-404f-a499-8849d840e357", + "width": 0, + "x": 1280, + "y": 1344, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "f8d1e4c8-24fd-4314-a8ad-c36720f56fcd", + "width": 0, + "x": 2240, + "y": 1344, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "8a03770e-07a6-419b-95dd-6295893ecfa7", + "width": 0, + "x": 2048, + "y": 1344, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "a397dd3b-81d1-4a3f-922d-dcd5defd35e0", + "width": 0, + "x": -1920, + "y": 1792, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "85f422a3-4acc-410b-846f-8a18820411c9", + "width": 1536, + "x": -1536, + "y": 1792, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "30e259c2-b893-48d6-b07b-c3b0de682167", + "width": 0, + "x": -960, + "y": 3200, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "9818f0b2-49d6-4351-8d89-27dd81b1e6f8", + "width": 0, + "x": -576, + "y": 3392, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "0e519ba6-bc33-45f5-878b-06e37ec35d59", + "width": 0, + "x": -256, + "y": 2624, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "79060b35-70d2-4426-946f-02b7d702354b", + "width": 0, + "x": -192, + "y": 3328, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "3dafd08a-bc5a-4d6d-af3e-e57eb432a56d", + "width": 0, + "x": -1472, + "y": 2624, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "f7963d9e-d1c6-4505-8e74-c0a17c473b7e", + "width": 0, + "x": -960, + "y": 2304, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "0ee005d2-a09c-4d0c-a33b-27364608dd73", + "width": 0, + "x": -192, + "y": 2304, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "16c1e9a8-7cc9-4fee-8d01-d3372e4d5e81", + "width": 0, + "x": -576, + "y": 2240, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "51eab286-233a-4cd3-bd7f-2bad20a6a2de", + "width": 0, + "x": -1344, + "y": 3328, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "69a45893-74cb-4f02-b3dd-4d3ec60cfc75", + "width": 0, + "x": -1344, + "y": 2304, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "52324b1a-e783-4ce6-8e63-0cedbcb8ce20", + "width": 0, + "x": -576, + "y": 3200, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "b5ceb42e-5a5f-48f7-ba7f-3fdd7c029004", + "width": 0, + "x": -576, + "y": 2432, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "5d16e34c-fa37-4980-8d2d-ba7d59b70ce5", + "width": 0, + "x": -1280, + "y": 2624, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "8597e021-5cf8-4527-a84e-be8866d231cf", + "width": 0, + "x": -1280, + "y": 3008, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "3ef7e679-1788-43c0-a483-2d95bc7ba2e1", + "width": 0, + "x": -64, + "y": 3008, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "57c955bf-7628-4e0d-ae4e-94bad825c46b", + "width": 0, + "x": -256, + "y": 3008, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "cafa31dd-6a62-47eb-888e-01102ffb26a8", + "width": 1280, + "x": -448, + "y": 2624, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "f5e3da38-0e7f-4a2d-a67c-cc94237894de", + "width": 384, + "x": -1920, + "y": 2176, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "12c47bb0-be33-4a62-9704-9221aeb0cf9b", + "rotationY": 90, + "width": 0, + "x": 1056, + "y": 3584, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "d704a44e-8c28-470c-97d7-3a18110b9249", + "rotationY": 90, + "width": 0, + "x": 864, + "y": 3584, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "c26ba544-05c0-4616-b18c-85093d694e23", + "rotationY": 90, + "width": 0, + "x": 960, + "y": 3584, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "1e5faafc-0bda-492c-af93-c27000718f46", + "width": 0, + "x": 2136, + "y": 3522, + "z": 4, + "zOrder": 37, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "5676bf7a-da5c-47dd-9b3c-6133f151fc78", + "width": 0, + "x": 1528, + "y": 3522, + "z": 4, + "zOrder": 37, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "505fcfa8-b875-4017-b97a-a3180a21db6c", + "width": 1920, + "x": 384, + "y": 3456, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "670a9aed-5b62-4372-8ef0-7f2753671574", + "width": 0, + "x": 960, + "y": 3200, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "131d5b79-9334-4560-bb45-1853f4ee8409", + "width": 0, + "x": 1344, + "y": 3392, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "0a245aa6-4d32-47dc-862b-6a1e0c383fe1", + "width": 0, + "x": 2048, + "y": 2624, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "72522327-805e-44c9-ab71-fdde779cfa65", + "width": 0, + "x": 2112, + "y": 3328, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "5ff3314b-0821-45c6-bb61-43342f73487b", + "width": 0, + "x": 448, + "y": 2624, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "8e855d0d-dcc3-40df-81e7-4f7ec1af34d4", + "width": 0, + "x": 1728, + "y": 2432, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "dc228875-2528-44f3-8b59-93dfdb22f738", + "width": 0, + "x": 2112, + "y": 2304, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "9c3d5bba-3a57-4195-83a9-d138fa5bba85", + "width": 0, + "x": 960, + "y": 2240, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "94264588-2af8-4601-babd-82a8707c4d48", + "width": 0, + "x": 576, + "y": 3328, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "f00e1f37-e3dc-4e6c-8c48-06d721cd293b", + "width": 0, + "x": 576, + "y": 2304, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "94215059-7baf-45a8-94cb-6e9c0e6e7ed1", + "width": 0, + "x": 1344, + "y": 3200, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "d03f1ecc-4a49-42cc-aa64-dd21d98a82ea", + "width": 0, + "x": 960, + "y": 2432, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "523a2321-57df-4e52-8ead-5b949450d94f", + "width": 0, + "x": 640, + "y": 2624, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "13c701ed-5ff4-4304-8c59-93fce9cf07cd", + "width": 0, + "x": 512, + "y": 3008, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "21529fc4-6d4b-4127-b82c-2048830066d4", + "width": 0, + "x": 2240, + "y": 3008, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "f841b7a8-06dd-4580-85fa-d5d0d7aa50cc", + "width": 0, + "x": 2048, + "y": 3008, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadBend", + "persistentUuid": "a1fc6e36-f48e-4397-b2f0-a3e72067e730", + "width": 0, + "x": 2304, + "y": 3456, + "zOrder": 45, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "42b9f2bc-f14c-4fd2-8d9c-aab2c4c8413e", + "width": 1280, + "x": 1856, + "y": 2624, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "2edcf5be-e3b1-4b22-a305-fa92c1be5a48", + "width": 0, + "x": 1728, + "y": 3328, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "ce651f5b-6053-4a4d-8e7d-60dee9918dd3", + "width": 0, + "x": 1344, + "y": 2432, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "e89950f8-353b-4f24-969c-2c5b3c244db3", + "width": 0, + "x": 2304, + "y": 1792, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "262650d6-cf38-46b4-be2d-3fb4413ca479", + "width": 0, + "x": 0, + "y": 3456, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "c859da86-521b-4f27-b455-b513b6ea9fae", + "rotationY": 90, + "width": 0, + "x": -2560, + "y": -909, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "a73d55ae-1ec2-488b-b55c-6930f485974d", + "rotationY": 90, + "width": 0, + "x": -2656, + "y": -909, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "6c9e3364-2e91-4303-b317-5bce64b09119", + "rotationY": 90, + "width": 0, + "x": -2752, + "y": -909, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "bb8f1831-e855-41ad-bd31-30e614b65e25", + "rotationY": 90, + "width": 0, + "x": -2848, + "y": -909, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "b07ee07d-86f5-4e59-a7b0-b6c5171099af", + "rotationY": 90, + "width": 0, + "x": -1984, + "y": 640, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "b1bfa08d-a764-4321-9e9d-9c30b4519ce8", + "rotationY": 90, + "width": 0, + "x": -2176, + "y": 640, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "c46f85dc-d5ca-4c5b-8031-2a5a3f958d92", + "rotationY": 90, + "width": 0, + "x": -2080, + "y": 640, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "0514f20b-f09c-4b4c-82ab-b6f4e17a9883", + "rotationY": 90, + "width": 0, + "x": -1946, + "y": 469, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "3e4491d4-692c-4b61-a094-42cb08bc447e", + "width": 0, + "x": -2454, + "y": -838, + "z": 4, + "zOrder": 28, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "7b26b94b-35ec-42fa-b86f-82e32c55623d", + "width": 0, + "x": -2294, + "y": -838, + "z": 4, + "zOrder": 28, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "4353bab1-3f88-4232-96b2-99ca1f98b2a8", + "width": 0, + "x": -2040, + "y": -838, + "z": 4, + "zOrder": 38, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "f305adba-bcf1-4248-9154-05d17d0cadc7", + "width": 0, + "x": -2582, + "y": -1085, + "z": 4, + "zOrder": 37, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "212ed022-9390-4cf7-a4f9-44bff1871667", + "width": 0, + "x": -2710, + "y": -1085, + "z": 4, + "zOrder": 39, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "7902e61e-184e-4054-b623-832507695fb4", + "width": 0, + "x": -2262, + "y": 578, + "z": 4, + "zOrder": 37, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "d7618275-6fb6-4bee-a5a8-2a6f5d9cec01", + "width": 0, + "x": -2390, + "y": 578, + "z": 4, + "zOrder": 39, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "71dd5bd5-5081-4456-808f-07f6b36b3458", + "width": 1152, + "x": -3072, + "y": 512, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "589c0d9d-3def-4da2-9a78-9c27a3234ddc", + "width": 1152, + "x": -3072, + "y": -1152, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "1c38b5b1-b741-49f1-8e67-402ec9cea5ae", + "width": 1280, + "x": -3904, + "y": -320, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "5998a7f0-e369-4836-9ef5-5663a87fbb5f", + "width": 0, + "x": -2880, + "y": 384, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "d7aece1e-37c8-46e4-9102-64e16e39b2a6", + "width": 0, + "x": -2496, + "y": 448, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "bc10635b-5e4e-4947-aa41-1ffe1fdd46d0", + "width": 0, + "x": -2048, + "y": -320, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "42a5d940-6fcf-4f93-bd2e-b649a3ef4d54", + "width": 0, + "x": -2992, + "y": -320, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "3114781d-439c-4092-97a5-9fea19bd3484", + "width": 0, + "x": -2880, + "y": -640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "e705f10b-f9b2-448c-9d3a-1ea8d75c6090", + "width": 0, + "x": -2112, + "y": -640, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "e8525fb0-4377-4e96-8478-d818d10cf3a7", + "width": 0, + "x": -2496, + "y": -689, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "d5d9b093-a2cc-4e24-b20d-97dc5c73c22f", + "width": 0, + "x": -2816, + "y": -320, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "066d761b-d1ad-418f-85b0-2092918d04ca", + "width": 0, + "x": -2496, + "y": -512, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "7d99af49-c26d-4324-a85f-7bc7d79b3ee1", + "width": 0, + "x": -2240, + "y": 256, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "7a6b3b71-1702-4d7f-bef0-19f17e813745", + "width": 0, + "x": -2816, + "y": 64, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "a33e9c0f-a1d9-4677-81c3-4630f53f1555", + "width": 0, + "x": -1984, + "y": 64, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "48c14d38-4885-4341-b9cc-25f79a337840", + "width": 0, + "x": -1920, + "y": -1152, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "b7a6e433-4d6c-4c70-a87c-6c2e0b22a949", + "width": 0, + "x": -1920, + "y": 512, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadBend", + "persistentUuid": "b513f37a-9788-4ca8-ad24-a10607a409be", + "width": 0, + "x": -3456, + "y": -1152, + "zOrder": 45, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "cbd66354-aa75-4dbb-a3e8-279964278708", + "rotationY": 90, + "width": 0, + "x": -1984, + "y": 2688, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "b9d44291-2f67-4945-9cf5-fc46e2373c43", + "rotationY": 90, + "width": 0, + "x": -2176, + "y": 2688, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "1ba16ea5-93e3-424c-91cf-17a1c708f31d", + "rotationY": 90, + "width": 0, + "x": -2080, + "y": 2688, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Coin", + "persistentUuid": "93ec0aa2-0322-46e8-bd55-9cc9f11dde20", + "rotationY": 90, + "width": 0, + "x": -1946, + "y": 2517, + "z": 21, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "fdeae199-6038-4af9-8471-6983634af29b", + "width": 0, + "x": -2454, + "y": 791, + "z": 4, + "zOrder": 28, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "8e164f83-fe1e-4c63-8b3d-e66a756aba3a", + "width": 0, + "x": -2294, + "y": 791, + "z": 4, + "zOrder": 28, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "83bfb37d-c6d0-41a9-bdd2-5b502ea7aa54", + "width": 0, + "x": -2040, + "y": 791, + "z": 4, + "zOrder": 38, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "Van", + "persistentUuid": "46b869c6-e23b-441f-a55f-582b0964331b", + "width": 0, + "x": -2262, + "y": 2626, + "z": 4, + "zOrder": 37, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "SuvLuxury", + "persistentUuid": "ea735180-6642-4fa4-ab42-c868975d232c", + "width": 0, + "x": -2390, + "y": 2626, + "z": 4, + "zOrder": 39, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "29a0fefb-02c6-45ce-bf9b-90b4f83d9b34", + "width": 1152, + "x": -3072, + "y": 2560, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "af6bdbde-6c09-45fa-91fb-2e4f14c2d22e", + "width": 1699, + "x": -4113, + "y": 1519, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "2423ce72-6cd9-4419-9606-6080457124bf", + "width": 0, + "x": -2880, + "y": 2432, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "039a2ae3-f429-4bf9-8d54-a06d26294aa7", + "width": 0, + "x": -2496, + "y": 2480, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "9ce2bf00-9b32-4171-80ca-71a06e71cfac", + "width": 0, + "x": -2176, + "y": 1344, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "35d29936-54ea-41bb-a6d4-8b08ba17643c", + "width": 0, + "x": -2112, + "y": 2432, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "1b2077a2-f66e-4d15-80d9-682cbfc572c6", + "width": 0, + "x": -3008, + "y": 1344, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "dcdb4b80-0b24-4520-8094-9a15f66e34f9", + "width": 0, + "x": -2880, + "y": 1024, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "ab602015-5ee4-4443-a192-e53617874fde", + "width": 0, + "x": -2112, + "y": 1024, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "48ac81d3-9e8f-4c16-9afe-695c11260fe5", + "width": 0, + "x": -2496, + "y": 960, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "8846971c-4d3d-4b4e-bf27-f7db6ec3d4a8", + "width": 0, + "x": -2816, + "y": 1344, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "f002dcb6-7734-44ff-9c11-03d80f21656d", + "width": 0, + "x": -2496, + "y": 1152, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "480c6e8b-cae4-4a0a-ac27-f28ae6a550ed", + "width": 0, + "x": -2496, + "y": 2304, + "zOrder": 48, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "d8a2ca27-e500-4c08-85f4-11ce7bae63fe", + "width": 0, + "x": -2816, + "y": 1728, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingF", + "persistentUuid": "4dc9a0dc-b445-4982-b723-a8a6d9cb0f68", + "width": 0, + "x": -1984, + "y": 1728, + "zOrder": 49, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "000a2c81-8cdc-4da1-88ed-9afb39fe3d8f", + "width": 0, + "x": -2176, + "y": 1728, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadBend", + "persistentUuid": "876e06b4-9467-4979-88fb-9adc2bcf6d8c", + "width": 0, + "x": -3456, + "y": 2560, + "zOrder": 45, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "6fa14a40-e494-47fc-8816-4a1e91b0c25a", + "width": 0, + "x": -3456, + "y": 512, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "4390f306-21e7-4c59-8f8d-41d216f95828", + "width": 0, + "x": -2944, + "y": 2112, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "", + "name": "LargeBuildingA", + "persistentUuid": "f06efadf-649b-4cf3-a2ed-25adfb55b34a", + "width": 0, + "x": -2048, + "y": 2112, + "zOrder": 50, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 8, + "height": 384, + "layer": "", + "name": "RoadStraight", + "persistentUuid": "a8244263-7fac-480c-8710-06a78c500e94", + "width": 512, + "x": -1984, + "y": 3008, + "zOrder": 42, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": false, + "height": 0, + "layer": "", + "name": "RoadIntersectionPath", + "persistentUuid": "109f2601-2b75-4462-86ef-e971e00d1221", + "width": 0, + "x": -1920, + "y": 2560, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -46381,7 +48336,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.3553434558817108, + "zoomFactor": 0.1550857455159367, "windowMask": false } }, From 17e8c14b1d4a953bb90fbcc491dc300f0ae06400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Wed, 2 Apr 2025 16:23:54 +0200 Subject: [PATCH 07/21] Add collision on trees. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 70 +++++++++++++++++-- 1 file changed, 65 insertions(+), 5 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index a3947dd34..2b634af4a 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1759,7 +1759,7 @@ "restitution": 0.5, "linearDamping": 0.1, "angularDamping": 0.1, - "gravityScale": 1, + "gravityScale": 4, "layers": 17, "masks": 17, "shapeOffsetX": 0, @@ -2180,7 +2180,35 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "Physics3D", + "type": "Physics3D::Physics3DBehavior", + "object3D": "Object3D", + "bodyType": "Static", + "bullet": false, + "fixedRotation": false, + "shape": "Cylinder", + "shapeOrientation": "Z", + "shapeDimensionA": 15, + "shapeDimensionB": 100, + "shapeDimensionC": 0, + "shapeOffsetX": 0, + "shapeOffsetY": 0, + "shapeOffsetZ": 50, + "massCenterOffsetX": 0, + "massCenterOffsetY": 0, + "massCenterOffsetZ": 0, + "density": 1, + "friction": 0.3, + "restitution": 0.1, + "linearDamping": 0.1, + "angularDamping": 0.1, + "gravityScale": 1, + "layers": 17, + "masks": 17 + } + ], "content": { "centerLocation": "ModelOrigin", "crossfadeDuration": 0, @@ -3360,7 +3388,6 @@ "type": "BuiltinCommonInstructions::Group", "events": [ { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ @@ -3405,7 +3432,7 @@ "", "0", "=", - "min((Player.Physics2::LinearVelocity() / 300), 1)" + "min((Player.Physics3D::LinearVelocityLength() / 300), 1)" ] }, { @@ -3416,7 +3443,40 @@ "", "0", "=", - "min((Player.Physics2::LinearVelocity()) * 10, 25)" + "min(Player.Physics3D::LinearVelocityLength() * 10, 25)" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetFlow" + }, + "parameters": [ + "Dust", + "=", + "20 + 0.01 * Player.Physics3D::LinearVelocityLength()", + "-90" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" + }, + "parameters": [ + "Dust", + "=", + "30 + 0.1 * Player.Physics3D::LinearVelocityLength()", + "-90" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMax" + }, + "parameters": [ + "Dust", + "=", + "50 + 0.3 * Player.Physics3D::LinearVelocityLength()", + "-90" ] } ] From f694b795bfb344779a0604ca26e4c84d0e2b74b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Fri, 4 Apr 2025 18:46:05 +0200 Subject: [PATCH 08/21] Add collision on trees. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 222 +++++++++++++++++- 1 file changed, 214 insertions(+), 8 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 2b634af4a..1744decab 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1,7 +1,7 @@ { "firstLayout": "Menu", "gdVersion": { - "build": 226, + "build": 228, "major": 5, "minor": 5, "revision": 0 @@ -1141,6 +1141,9 @@ }, { "name": "Van" + }, + { + "name": "CommonTree" } ] }, @@ -1772,7 +1775,12 @@ { "name": "PhysicsVehicle3D", "type": "Physics3D::PhysicsVehicle3D", - "physics3D": "Physics3D" + "physics3D": "Physics3D", + "steerAngleMax": 70, + "beginningSteerAngularVelocity": 70, + "endSteerAngularVelocity": 5, + "mass": 1500, + "engineTorqueMax": 4500 }, { "name": "ThirdPersonCamera", @@ -2811,16 +2819,15 @@ "comment": "Start timer only when the SedanPlayer starts moving." }, { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "Physics2::LinearVelocityLength" + "value": "Physics3D::Physics3DBehavior::LinearVelocityLength" }, "parameters": [ "Player", - "Physics2", + "Physics3D", ">", "0" ] @@ -3827,17 +3834,17 @@ "type": "BuiltinCommonInstructions::Group", "events": [ { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "Physics2::Collision" + "value": "Physics3D::Collision" }, "parameters": [ "Player", - "Physics2", + "Physics3D", "Obstacle", + "Physics3D", "" ] }, @@ -3882,6 +3889,205 @@ ] } ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextReleased" + }, + "parameters": [ + "", + "\"PageUp\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetValue" + }, + "parameters": [ + "Player", + "Scale", + "=", + "2" + ] + }, + { + "type": { + "value": "Physics3D::Physics3DBehavior::ShapeScale" + }, + "parameters": [ + "Player", + "Physics3D", + "=", + "2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextReleased" + }, + "parameters": [ + "", + "\"Return\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"Game\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextReleased" + }, + "parameters": [ + "", + "\"d\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Player", + "PhysicsVehicle3D", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextReleased" + }, + "parameters": [ + "", + "\"e\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Player", + "PhysicsVehicle3D", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextReleased" + }, + "parameters": [ + "", + "\"Delete\"" + ] + }, + { + "type": { + "value": "AjoutHasard" + }, + "parameters": [ + "", + "Player" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Player", + "" + ] + } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Player", + "1167", + "106", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextReleased" + }, + "parameters": [ + "", + "\"c\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Player", + "1167", + "106", + "" + ] + } + ] } ], "layers": [ From 64cfceb0cdca94cadbb911c388a385484264939c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 7 Apr 2025 18:50:39 +0200 Subject: [PATCH 09/21] Add properties for gears and wheels. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 1744decab..39a398447 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1756,9 +1756,9 @@ "shapeOrientation": "Z", "shapeDimensionA": 74, "shapeDimensionB": 39, - "shapeDimensionC": 22, + "shapeDimensionC": 27, "density": 1, - "friction": 2, + "friction": 6, "restitution": 0.5, "linearDamping": 0.1, "angularDamping": 0.1, @@ -1770,17 +1770,31 @@ "shapeOffsetZ": 6, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": -30 + "massCenterOffsetZ": -25 }, { "name": "PhysicsVehicle3D", "type": "Physics3D::PhysicsVehicle3D", "physics3D": "Physics3D", "steerAngleMax": 70, - "beginningSteerAngularVelocity": 70, - "endSteerAngularVelocity": 5, + "beginningSteerSpeed": 140, + "endSteerSpeed": 10, "mass": 1500, - "engineTorqueMax": 4500 + "engineTorqueMax": 4500, + "engineSpeedMax": 6000, + "reverseGearRatio1": -2.9, + "gearRatio1": 2.66, + "gearRatio2": 1.78, + "gearRatio3": 1.3, + "gearRatio4": 1, + "gearRatio5": 0.74, + "gearRatio6": 0, + "backWheelOffsetX": 0, + "frontWheelOffsetX": 0, + "wheelOffsetY": 0, + "wheelOffsetZ": 0, + "wheelRadius": 6, + "wheelWidth": 3 }, { "name": "ThirdPersonCamera", @@ -2262,7 +2276,7 @@ "masks": 17, "shapeOffsetX": 0, "shapeOffsetY": 0, - "shapeOffsetZ": 10, + "shapeOffsetZ": 8, "massCenterOffsetX": 0, "massCenterOffsetY": 0, "massCenterOffsetZ": 0 From fd4ec1b59e3187953b987fbaa8c152392b38f261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 7 Apr 2025 19:01:09 +0200 Subject: [PATCH 10/21] Set wheel offsets. --- examples/3d-car-coin-hunt/3d-car-coin-hunt.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 39a398447..dabe66474 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1789,8 +1789,8 @@ "gearRatio4": 1, "gearRatio5": 0.74, "gearRatio6": 0, - "backWheelOffsetX": 0, - "frontWheelOffsetX": 0, + "backWheelOffsetX": 6, + "frontWheelOffsetX": 5, "wheelOffsetY": 0, "wheelOffsetZ": 0, "wheelRadius": 6, From 98d3726660e9093fe14af674fdb7f1f3370ed797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 8 Apr 2025 15:08:01 +0200 Subject: [PATCH 11/21] Add properties for 4 wheels drive. --- examples/3d-car-coin-hunt/3d-car-coin-hunt.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index dabe66474..6a79baf1f 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1794,7 +1794,10 @@ "wheelOffsetY": 0, "wheelOffsetZ": 0, "wheelRadius": 6, - "wheelWidth": 3 + "wheelWidth": 3, + "hasBackWheelDrive": false, + "hasFrontWheelDrive": true, + "pitchRollAngleMax": 90 }, { "name": "ThirdPersonCamera", From 37f046a0579cad72243c7853a081c2635c8686a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 8 Apr 2025 15:43:30 +0200 Subject: [PATCH 12/21] Fix offset sign. --- examples/3d-car-coin-hunt/3d-car-coin-hunt.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 6a79baf1f..d5c87a621 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1789,8 +1789,8 @@ "gearRatio4": 1, "gearRatio5": 0.74, "gearRatio6": 0, - "backWheelOffsetX": 6, - "frontWheelOffsetX": 5, + "backWheelOffsetX": -6, + "frontWheelOffsetX": -5, "wheelOffsetY": 0, "wheelOffsetZ": 0, "wheelRadius": 6, From cdfc5ba0357bfe989ca47cea3da5d934b1e64d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 8 Apr 2025 19:47:26 +0200 Subject: [PATCH 13/21] Add brake properties. --- examples/3d-car-coin-hunt/3d-car-coin-hunt.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index d5c87a621..1db51337e 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1782,6 +1782,7 @@ "mass": 1500, "engineTorqueMax": 4500, "engineSpeedMax": 6000, + "engineInertia": 0.5, "reverseGearRatio1": -2.9, "gearRatio1": 2.66, "gearRatio2": 1.78, @@ -1795,6 +1796,8 @@ "wheelOffsetZ": 0, "wheelRadius": 6, "wheelWidth": 3, + "brakeTorqueMax": 1500, + "handBrakeTorqueMax": 4000, "hasBackWheelDrive": false, "hasFrontWheelDrive": true, "pitchRollAngleMax": 90 @@ -48283,9 +48286,9 @@ "layer": "", "name": "RoadStraight", "persistentUuid": "af6bdbde-6c09-45fa-91fb-2e4f14c2d22e", - "width": 1699, - "x": -4113, - "y": 1519, + "width": 1665, + "x": -4096, + "y": 1536, "zOrder": 42, "numberProperties": [], "stringProperties": [], @@ -48619,7 +48622,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.1550857455159367, + "zoomFactor": 0.13138826996360262, "windowMask": false } }, From 14139bcfbd71d95b60bae29be6661f8d2bd61f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 13 Apr 2025 23:37:41 +0200 Subject: [PATCH 14/21] Rename the behavior from Vehicle to Car --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 72 ++++++++++--------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 1db51337e..42b4373bb 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1770,11 +1770,12 @@ "shapeOffsetZ": 6, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": -25 + "massCenterOffsetZ": -25, + "massOverride": 1500 }, { - "name": "PhysicsVehicle3D", - "type": "Physics3D::PhysicsVehicle3D", + "name": "PhysicsCar3D", + "type": "Physics3D::PhysicsCar3D", "physics3D": "Physics3D", "steerAngleMax": 70, "beginningSteerSpeed": 140, @@ -1875,7 +1876,8 @@ "shapeOffsetZ": 0, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": 0 + "massCenterOffsetZ": 0, + "massOverride": 0 } ], "content": { @@ -1926,7 +1928,8 @@ "shapeOffsetZ": 0, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": 0 + "massCenterOffsetZ": 0, + "massOverride": 0 } ], "content": { @@ -1977,7 +1980,8 @@ "shapeOffsetZ": 0, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": 0 + "massCenterOffsetZ": 0, + "massOverride": 0 } ], "content": { @@ -2028,7 +2032,8 @@ "shapeOffsetZ": 0, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": 0 + "massCenterOffsetZ": 0, + "massOverride": 0 } ], "content": { @@ -2114,7 +2119,8 @@ "shapeOffsetZ": 0, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": 0 + "massCenterOffsetZ": 0, + "massOverride": 0 } ], "content": { @@ -2234,7 +2240,8 @@ "angularDamping": 0.1, "gravityScale": 1, "layers": 17, - "masks": 17 + "masks": 17, + "massOverride": 0 } ], "content": { @@ -2285,7 +2292,8 @@ "shapeOffsetZ": 8, "massCenterOffsetX": 0, "massCenterOffsetY": 0, - "massCenterOffsetZ": 0 + "massCenterOffsetZ": 0, + "massOverride": 0 } ], "content": { @@ -2931,11 +2939,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateBackwardKey" + "value": "Physics3D::PhysicsCar3D::SimulateBackwardKey" }, "parameters": [ "Player", - "PhysicsVehicle3D" + "PhysicsCar3D" ] } ] @@ -2956,11 +2964,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateForwardKey" + "value": "Physics3D::PhysicsCar3D::SimulateForwardKey" }, "parameters": [ "Player", - "PhysicsVehicle3D" + "PhysicsCar3D" ] } ] @@ -2981,11 +2989,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateLeftKey" + "value": "Physics3D::PhysicsCar3D::SimulateLeftKey" }, "parameters": [ "Player", - "PhysicsVehicle3D" + "PhysicsCar3D" ] } ] @@ -3006,11 +3014,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateRightKey" + "value": "Physics3D::PhysicsCar3D::SimulateRightKey" }, "parameters": [ "Player", - "PhysicsVehicle3D" + "PhysicsCar3D" ] } ] @@ -3031,11 +3039,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateHandBreakKey" + "value": "Physics3D::PhysicsCar3D::SimulateHandBreakKey" }, "parameters": [ "Player", - "PhysicsVehicle3D" + "PhysicsCar3D" ] } ] @@ -3077,11 +3085,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateAcceleratorStick" + "value": "Physics3D::PhysicsCar3D::SimulateAcceleratorStick" }, "parameters": [ "Player", - "PhysicsVehicle3D", + "PhysicsCar3D", "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" ] } @@ -3106,11 +3114,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateSteeringStick" + "value": "Physics3D::PhysicsCar3D::SimulateSteeringStick" }, "parameters": [ "Player", - "PhysicsVehicle3D", + "PhysicsCar3D", "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" ] } @@ -3275,11 +3283,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateAcceleratorStick" + "value": "Physics3D::PhysicsCar3D::SimulateAcceleratorStick" }, "parameters": [ "Player", - "PhysicsVehicle3D", + "PhysicsCar3D", "-PedalJoystick.StickForceY()" ] } @@ -3301,11 +3309,11 @@ "actions": [ { "type": { - "value": "Physics3D::PhysicsVehicle3D::SimulateSteeringStick" + "value": "Physics3D::PhysicsCar3D::SimulateSteeringStick" }, "parameters": [ "Player", - "PhysicsVehicle3D", + "PhysicsCar3D", "SteeringJoystick.StickForceX()" ] } @@ -3994,7 +4002,7 @@ }, "parameters": [ "Player", - "PhysicsVehicle3D", + "PhysicsCar3D", "" ] } @@ -4020,7 +4028,7 @@ }, "parameters": [ "Player", - "PhysicsVehicle3D", + "PhysicsCar3D", "yes" ] } @@ -4292,8 +4300,8 @@ "worldScale": 20 }, { - "name": "PhysicsVehicle3D", - "type": "Physics3D::PhysicsVehicle3D" + "name": "PhysicsCar3D", + "type": "Physics3D::PhysicsCar3D" }, { "name": "Resizable", From 2d075480c69f638893d65c508acbc27491776de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 14 Apr 2025 12:49:40 +0200 Subject: [PATCH 15/21] Add fog --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 177 ++++++++++++++++-- examples/3d-car-coin-hunt/assets/FoggySky.png | Bin 0 -> 13167 bytes 2 files changed, 159 insertions(+), 18 deletions(-) create mode 100644 examples/3d-car-coin-hunt/assets/FoggySky.png diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 42b4373bb..b909f0214 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -634,6 +634,14 @@ "identifier": "https://asset-resources.gdevelop.io/public-resources/Mobile Layouts/assets/6a8102ce3340bf9f62300ee1a81ef0b2327b2c6e8d62d7dda68d547f5e2b5969_rotate-screen-icon.png", "name": "rotate-screen-icon.png" } + }, + { + "file": "assets/FoggySky.png", + "kind": "image", + "metadata": "", + "name": "assets\\FoggySky.png", + "smoothed": true, + "userAdded": false } ], "resourceFolders": [] @@ -1104,15 +1112,15 @@ ] }, { - "b": 216, + "b": 215, "disableInputWhenNotFocused": true, "mangledName": "Game", "name": "Game", - "r": 135, + "r": 221, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", - "v": 179, + "v": 221, "uiSettings": { "grid": false, "gridType": "rectangular", @@ -1301,6 +1309,23 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 1, + "height": 203, + "keepRatio": true, + "layer": "Background", + "name": "NewSprite", + "persistentUuid": "69a0e10c-4cb2-4f66-832f-e8590d4aac59", + "width": 1281, + "x": 0, + "y": 0, + "zOrder": 44, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "objects": [ @@ -2573,6 +2598,77 @@ "width": 31, "animations": [] } + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "NewSprite", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "bottomEdgeAnchor": 0, + "leftEdgeAnchor": 1, + "name": "Anchor", + "relativeToOriginalWindowSize": true, + "rightEdgeAnchor": 2, + "topEdgeAnchor": 0, + "type": "AnchorBehavior::AnchorBehavior", + "useLegacyBottomAndRightAnchors": false + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets\\FoggySky.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 256, + "y": 0 + }, + { + "x": 256, + "y": 256 + }, + { + "x": 0, + "y": 256 + } + ] + ] + } + ] + } + ] + } + ] } ], "objectsFolderStructure": { @@ -2665,6 +2761,9 @@ { "objectName": "Player" }, + { + "objectName": "NewSprite" + }, { "objectName": "Coin" } @@ -4123,7 +4222,40 @@ "ambientLightColorB": 200, "ambientLightColorG": 200, "ambientLightColorR": 200, - "camera3DFarPlaneDistance": 5000, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 3, + "cameraType": "", + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "Background", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [ + { + "effectType": "Scene3D::HemisphereLight", + "name": "3D Light", + "doubleParameters": { + "elevation": 45, + "intensity": 1, + "rotation": 0 + }, + "stringParameters": { + "groundColor": "64;64;64", + "skyColor": "255;255;255", + "top": "Y-" + }, + "booleanParameters": {} + } + ] + }, + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera3DFarPlaneDistance": 3000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "cameraType": "perspective", @@ -4174,6 +4306,17 @@ "top": "Z+" }, "booleanParameters": {} + }, + { + "effectType": "Scene3D::ExponentialFog", + "name": "Fog", + "doubleParameters": { + "density": 0.0006 + }, + "stringParameters": { + "color": "221;221;215" + }, + "booleanParameters": {} } ] }, @@ -15314,24 +15457,22 @@ }, { "type": { - "value": "SetCameraAngle" + "value": "SetNumberVariable" }, "parameters": [ - "", + "CameraZ", "=", - "Object.Angle() + 90", - "Object.Layer()", - "0" + "Object.Object3D::CenterZ()" ] }, { "type": { - "value": "SetNumberVariable" + "value": "ThirdPersonCamera::ThirdPersonCamera::JumpToTargetedRotation" }, "parameters": [ - "CameraZ", - "=", - "Object.Object3D::CenterZ()" + "Object", + "Behavior", + "" ] } ] @@ -45958,15 +46099,15 @@ "angle": 0, "customSize": true, "depth": 100, - "height": 10496, + "height": 12160, "layer": "", "locked": true, "name": "Grass", "persistentUuid": "05276cd6-3502-4c9d-a19e-58308fbbb417", "sealed": true, - "width": 10624, - "x": -4480, - "y": -4480, + "width": 14080, + "x": -6784, + "y": -5376, "z": -100, "zOrder": 47, "numberProperties": [], @@ -48630,7 +48771,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.13138826996360262, + "zoomFactor": 0.06334164344484745, "windowMask": false } }, diff --git a/examples/3d-car-coin-hunt/assets/FoggySky.png b/examples/3d-car-coin-hunt/assets/FoggySky.png new file mode 100644 index 0000000000000000000000000000000000000000..07edc8536ae6f0dea3295a7c8ab810ad4503f713 GIT binary patch literal 13167 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 Date: Mon, 14 Apr 2025 10:51:52 +0000 Subject: [PATCH 16/21] Optimised images with calibre/image-actions --- examples/3d-car-coin-hunt/assets/FoggySky.png | Bin 13167 -> 9953 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/3d-car-coin-hunt/assets/FoggySky.png b/examples/3d-car-coin-hunt/assets/FoggySky.png index 07edc8536ae6f0dea3295a7c8ab810ad4503f713..678653ce6ae07ffc5e35cc954fb8b5faad2748ac 100644 GIT binary patch literal 9953 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 Cl+8o{ literal 13167 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 Date: Mon, 14 Apr 2025 15:06:02 +0200 Subject: [PATCH 17/21] Give more acceleration to the car. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index b909f0214..19a7c6be9 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1783,11 +1783,11 @@ "shapeDimensionB": 39, "shapeDimensionC": 27, "density": 1, - "friction": 6, + "friction": 10, "restitution": 0.5, "linearDamping": 0.1, "angularDamping": 0.1, - "gravityScale": 4, + "gravityScale": 6, "layers": 17, "masks": 17, "shapeOffsetX": 0, @@ -1806,9 +1806,9 @@ "beginningSteerSpeed": 140, "endSteerSpeed": 10, "mass": 1500, - "engineTorqueMax": 4500, + "engineTorqueMax": 8000, "engineSpeedMax": 6000, - "engineInertia": 0.5, + "engineInertia": 0.1, "reverseGearRatio1": -2.9, "gearRatio1": 2.66, "gearRatio2": 1.78, @@ -1822,11 +1822,11 @@ "wheelOffsetZ": 0, "wheelRadius": 6, "wheelWidth": 3, - "brakeTorqueMax": 1500, - "handBrakeTorqueMax": 4000, + "brakeTorqueMax": 3000, + "handBrakeTorqueMax": 6000, "hasBackWheelDrive": false, "hasFrontWheelDrive": true, - "pitchRollAngleMax": 90 + "pitchRollAngleMax": 89 }, { "name": "ThirdPersonCamera", @@ -1889,8 +1889,8 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 5, - "friction": 0.3, - "restitution": 0.1, + "friction": 0.01, + "restitution": 0.01, "linearDamping": 0.1, "angularDamping": 0.1, "gravityScale": 1, @@ -1941,8 +1941,8 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 5, - "friction": 0.3, - "restitution": 0.1, + "friction": 0.01, + "restitution": 0.01, "linearDamping": 0.1, "angularDamping": 0.1, "gravityScale": 1, @@ -2132,7 +2132,7 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 1, - "friction": 5, + "friction": 7, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, @@ -2259,8 +2259,8 @@ "massCenterOffsetY": 0, "massCenterOffsetZ": 0, "density": 1, - "friction": 0.3, - "restitution": 0.1, + "friction": 0.01, + "restitution": 0.01, "linearDamping": 0.1, "angularDamping": 0.1, "gravityScale": 1, @@ -2305,7 +2305,7 @@ "shapeDimensionB": 0, "shapeDimensionC": 0, "density": 1, - "friction": 5, + "friction": 7, "restitution": 0.1, "linearDamping": 0.1, "angularDamping": 0.1, @@ -46462,7 +46462,7 @@ "persistentUuid": "8c3e300a-b991-44e1-8d2f-c12129ca95d4", "width": 0, "x": -576, - "y": -689, + "y": -704, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46478,7 +46478,7 @@ "persistentUuid": "6c1f5561-24c8-4305-a22c-8604162282fa", "width": 0, "x": 576, - "y": 79, + "y": 64, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46494,7 +46494,7 @@ "persistentUuid": "7bcc160b-2587-452e-b7e4-68b584cbc754", "width": 0, "x": 576, - "y": -689, + "y": -704, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46525,7 +46525,7 @@ "name": "LargeBuildingF", "persistentUuid": "d7b328c3-82a1-4035-b6bc-80091cb3ccb1", "width": 0, - "x": 689, + "x": 704, "y": -448, "zOrder": 49, "numberProperties": [], @@ -46605,7 +46605,7 @@ "name": "LargeBuildingF", "persistentUuid": "f98ac4e1-de20-46bf-886b-52017a7ae87a", "width": 0, - "x": 689, + "x": 704, "y": 832, "zOrder": 49, "numberProperties": [], @@ -46638,7 +46638,7 @@ "persistentUuid": "5509575e-7090-4fe2-a614-e02f10db8663", "width": 0, "x": 1728, - "y": 1712, + "y": 1728, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -46685,7 +46685,7 @@ "name": "LargeBuildingF", "persistentUuid": "3940ad48-378a-48e3-9d92-cedcb10308d2", "width": 0, - "x": 1232, + "x": 1216, "y": 960, "zOrder": 49, "numberProperties": [], @@ -46734,7 +46734,7 @@ "persistentUuid": "ccd4a0fa-581c-4933-a10b-f2c1ef120793", "width": 0, "x": 1728, - "y": 591, + "y": 576, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -48132,7 +48132,7 @@ "persistentUuid": "e8525fb0-4377-4e96-8478-d818d10cf3a7", "width": 0, "x": -2496, - "y": -689, + "y": -704, "zOrder": 49, "numberProperties": [], "stringProperties": [], @@ -48771,7 +48771,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.06334164344484745, + "zoomFactor": 0.1313882699636029, "windowMask": false } }, From bdd89f5b3ed182ad5cc681b2ce604e99a3972ae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 14 Apr 2025 17:02:22 +0200 Subject: [PATCH 18/21] Add air controls. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 597 +++++++++++++++++- 1 file changed, 594 insertions(+), 3 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 19a7c6be9..535b7b3be 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1131,7 +1131,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.6244537826599987, + "zoomFactor": 0.6455105703311483, "windowMask": false }, "objectsGroups": [ @@ -1770,6 +1770,41 @@ ], "effects": [], "behaviors": [ + { + "name": "AirControl3D", + "type": "AirControl3D::AirControl3D", + "Physics3D": "Physics3D", + "RotationSpeedMax": 180, + "RotationAcceleration": 720, + "RotationDeceleration": 720, + "TranslationSpeedMax": 400, + "TranslationAcceleration": 1600, + "TranslationDeceleration": 1600, + "CurrentRotationSpeed": 0, + "PreviousRotationSpeed": 0, + "CurrentForwardSpeed": 0, + "CurrentSidewaysSpeed": 0, + "PreviousForwardSpeed": 0, + "PreviousSidewaysSpeed": 0, + "HasPressedTurnLeft": false, + "HasPressedTurnRight": false, + "HasPressedTurnLeftLast": false, + "HadPressedTurnLeft": false, + "HadPressedTurnRight": false, + "HasPressedMoveForward": false, + "HasPressedMoveBackward": false, + "HadPressedMoveForward": false, + "HadPressedMoveBackward": false, + "HasPressedMoveBackwardLast": false, + "HasPressedMoveLeft": false, + "HasPressedMoveRight": false, + "HadPressedMoveLeft": false, + "HadPressedMoveRight": false, + "HasPressedMoveLeftLast": false, + "TargetedForwardSpeed": 0, + "TargetedSidewaysSpeed": 0, + "TargetedRotationSpeed": 0 + }, { "name": "Physics3D", "type": "Physics3D::Physics3DBehavior", @@ -2609,13 +2644,13 @@ "effects": [], "behaviors": [ { + "name": "Anchor", + "type": "AnchorBehavior::AnchorBehavior", "bottomEdgeAnchor": 0, "leftEdgeAnchor": 1, - "name": "Anchor", "relativeToOriginalWindowSize": true, "rightEdgeAnchor": 2, "topEdgeAnchor": 0, - "type": "AnchorBehavior::AnchorBehavior", "useLegacyBottomAndRightAnchors": false } ], @@ -4215,6 +4250,181 @@ ] } ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Air control", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Physics3D::PhysicsCar3D::IsOnFloor" + }, + "parameters": [ + "Player", + "PhysicsCar3D" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Player", + "AirControl3D", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Physics3D::PhysicsCar3D::IsOnFloor" + }, + "parameters": [ + "Player", + "PhysicsCar3D" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Player", + "AirControl3D", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "\"Down\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"LT\"", + "\"Up\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "PedalJoystick", + "\"Down\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "AirControl3D::AirControl3D::SimulateMoveBackwardKey" + }, + "parameters": [ + "Player", + "AirControl3D", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "\"Up\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"RT\"", + "\"Up\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "PedalJoystick", + "\"Up\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "AirControl3D::AirControl3D::SimulateMoveForwardKey" + }, + "parameters": [ + "Player", + "AirControl3D", + "" + ] + } + ] + } + ], + "parameters": [] } ], "layers": [ @@ -4402,6 +4612,12 @@ } ], "behaviorsSharedData": [ + { + "name": "AirControl3D", + "type": "AirControl3D::AirControl3D", + "Cos": 0, + "Sin": 0 + }, { "name": "Anchor", "type": "AnchorBehavior::AnchorBehavior" @@ -44558,6 +44774,381 @@ ] } ] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "gdevelopVersion": "", + "helpPath": "", + "iconUrl": "", + "name": "AirControl3D", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "globalVariables": [], + "sceneVariables": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Turn and move objects forward.", + "fullName": "3D air control", + "name": "AirControl3D", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "HasPressedMoveBackward", + "True", + "" + ] + }, + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "HasPressedMoveForward", + "True", + "" + ] + } + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "HasPressedMoveBackward", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CurrentForce", + "=", + "-Force" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "HasPressedMoveForward", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CurrentForce", + "=", + "Force" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Physics3D::Physics3DBehavior::ApplyForceAtCenter" + }, + "parameters": [ + "Object", + "Physics3D", + "XFromAngleAndDistance(Object.Angle(), CurrentForce)", + "YFromAngleAndDistance(Object.Angle(), CurrentForce)", + "0" + ] + } + ] + } + ], + "variables": [ + { + "name": "CurrentForce", + "type": "number", + "value": 0 + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "AirControl3D::AirControl3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Simulate a press of the move backward key.", + "fullName": "Simulate move backward key press", + "functionType": "Action", + "group": "Top-down walk state", + "name": "SimulateMoveBackwardKey", + "sentence": "Simulate pressing move backward key for _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "BooleanVariable" + }, + "parameters": [ + "HadPressedMoveBackward", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "HasPressedMoveBackwardLast", + "True", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "HasPressedMoveBackward", + "True", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "AirControl3D::AirControl3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Simulate a press of the move forward key.", + "fullName": "Simulate move forward key press", + "functionType": "Action", + "group": "Top-down walk state", + "name": "SimulateMoveForwardKey", + "sentence": "Simulate pressing move forward key for _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "BooleanVariable" + }, + "parameters": [ + "HadPressedMoveForward", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "HasPressedMoveBackwardLast", + "False", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "HasPressedMoveForward", + "True", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "AirControl3D::AirControl3D", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "3D physics engine", + "description": "", + "group": "", + "extraInformation": [ + "Physics3D::Physics3DBehavior" + ], + "name": "Physics3D" + }, + { + "value": "4000", + "type": "Number", + "unit": "Newton", + "label": "Force", + "description": "", + "group": "", + "extraInformation": [], + "name": "Force" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HasPressedMoveForward" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HasPressedMoveBackward" + } + ], + "sharedPropertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Cos" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "name": "Sin" + } + ] + } + ], + "eventsBasedObjects": [] } ], "externalLayouts": [ From 85033b6cfd48a413cb7130b928b9d9697bd67755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 14 Apr 2025 17:42:48 +0200 Subject: [PATCH 19/21] Fix the direction arrow --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 535b7b3be..e9378bd4e 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -3593,6 +3593,17 @@ "Dust.Y() + RandomFloatInRange(-6, 6)" ] }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetZ" + }, + "parameters": [ + "Dust", + "Object3D", + "=", + "Player.Object3D::Z() + 10" + ] + }, { "type": { "value": "ModPitchSoundChannel" @@ -3692,12 +3703,13 @@ "actions": [ { "type": { - "value": "SetAngle" + "value": "RotateTowardAngle" }, "parameters": [ "Arrow", - "=", - "AngleBetweenPositions(Player.CenterX(), Player.CenterY(), Coin.CenterX(), Coin.CenterY())" + "AngleBetweenPositions(Player.CenterX(), Player.CenterY(), Coin.CenterX(), Coin.CenterY())", + "30", + "" ] }, { @@ -3707,7 +3719,7 @@ "parameters": [ "Arrow", "Player", - "160", + "60", "Arrow.Angle()" ] } From 5322d3767a2aba6d358de0573704ce8b34330374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 15 Apr 2025 12:12:03 +0200 Subject: [PATCH 20/21] Add a few trees. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 287 +++++++++++++++++- 1 file changed, 286 insertions(+), 1 deletion(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index e9378bd4e..2ec73f91e 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -49362,6 +49362,291 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 65, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "99e412c0-a22c-4772-aaa4-11d7356a0a0b", + "width": 0, + "x": -3456, + "y": 5120, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 61, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "3cc3334d-7f26-4e43-b9ae-1cb79823b08b", + "width": 0, + "x": 4480, + "y": 2432, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 77, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "0ad08b82-cc6f-4e47-b8d8-105508c828cd", + "width": 0, + "x": 5632, + "y": -640, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 127, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "3c708221-631f-44eb-970a-20632025ef55", + "width": 0, + "x": -4608, + "y": -1280, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 186, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "064cb7cd-1254-4b63-9f19-327619db650b", + "width": 0, + "x": 768, + "y": 5376, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 300, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "a45feb42-e790-4346-80a7-9b19cf827dc6", + "width": 0, + "x": 6016, + "y": 5120, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 315, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "bf30b634-c017-4a1f-b95d-8f56bb8bb703", + "width": 0, + "x": 6144, + "y": 1024, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 255, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "e3ca34a5-bfc6-4ef6-82ac-d5806c6ade12", + "width": 0, + "x": -1024, + "y": -2944, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 315, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "5361970d-57dd-49d5-8cf5-dc346013f6fd", + "width": 0, + "x": 3072, + "y": -4096, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 315, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "4c45061f-ef62-4a10-8c44-956d7ddc5e64", + "width": 0, + "x": 3200, + "y": -1664, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 315, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "f84b0986-298d-439c-8b3a-016aeda4fd5c", + "width": 0, + "x": 1408, + "y": -1792, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 325, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "69960099-26da-4e9e-99bf-53f491642e0b", + "width": 0, + "x": 5760, + "y": -3456, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 61, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "81d67980-48c0-4f09-9e0c-0e4ca7043345", + "width": 0, + "x": -3584, + "y": -3840, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 47, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "95e04ddf-e6fc-418e-a4db-03a49d4cdadd", + "width": 0, + "x": -5376, + "y": 1920, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 96, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "09b945b8-f879-4a21-8afa-62b9bcabb77d", + "width": 0, + "x": 1536, + "y": -3200, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 81, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "0a0211cf-e0f5-485c-9cd0-16b206107314", + "width": 0, + "x": 3328, + "y": 4352, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 103, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "ce007c64-db91-427e-b50b-ba07a1f8e747", + "width": 0, + "x": -896, + "y": 4352, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 80, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "9db87156-732c-40bb-a128-c61241e5841b", + "width": 0, + "x": -2560, + "y": 3584, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 117, + "customSize": false, + "height": 0, + "layer": "", + "name": "CommonTree", + "persistentUuid": "e41ae06f-c7d3-4041-a54c-61eea4782aa9", + "width": 0, + "x": -4352, + "y": 512, + "zOrder": 46, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -49374,7 +49659,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.1313882699636029, + "zoomFactor": 0.05547241800881481, "windowMask": false } }, From 1f6ce1ad7f9e5e34b6552bab831f0ff501e29d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 15 Apr 2025 14:29:24 +0200 Subject: [PATCH 21/21] Add events to test multiplayer. --- .../3d-car-coin-hunt/3d-car-coin-hunt.json | 2079 +++++++++-------- 1 file changed, 1116 insertions(+), 963 deletions(-) diff --git a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json index 2ec73f91e..8ffced093 100644 --- a/examples/3d-car-coin-hunt/3d-car-coin-hunt.json +++ b/examples/3d-car-coin-hunt/3d-car-coin-hunt.json @@ -1015,6 +1015,52 @@ } ], "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Multiplayer::OpenGameLobbies" + }, + "parameters": [ + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Multiplayer::HasLobbyGameJustStarted" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"Game\"", + "" + ] + } + ] } ], "layers": [ @@ -1805,6 +1851,12 @@ "TargetedSidewaysSpeed": 0, "TargetedRotationSpeed": 0 }, + { + "name": "MultiplayerObject", + "type": "Multiplayer::MultiplayerObjectBehavior", + "playerNumber": 0, + "actionOnPlayerDisconnect": "DestroyObject" + }, { "name": "Physics3D", "type": "Physics3D::Physics3DBehavior", @@ -2842,6 +2894,24 @@ "" ] } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Multiplayer::SetObjectsSynchronizationRate" + }, + "parameters": [ + "=", + "5" + ] + } + ] + } ] }, { @@ -2944,401 +3014,242 @@ ] }, { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "When the game is playing", - "source": "", - "type": "BuiltinCommonInstructions::Group", + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Multiplayer::MultiplayerObjectBehavior::TakeObjectOwnership" + }, + "parameters": [ + "Player", + "MultiplayerObject" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Multiplayer::MultiplayerObjectBehavior::IsObjectOwnedByCurrentPlayer" + }, + "parameters": [ + "Player", + "MultiplayerObject" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Player", + "ThirdPersonCamera", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Multiplayer::MultiplayerObjectBehavior::IsObjectOwnedByCurrentPlayer" + }, + "parameters": [ + "Player", + "MultiplayerObject" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Player", + "ThirdPersonCamera", + "yes" + ] + } + ], "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StringVariable" - }, - "parameters": [ - "GameState", - "=", - "\"Playing\"" - ] - } - ], - "actions": [], + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "When the game is playing", + "source": "", + "type": "BuiltinCommonInstructions::Group", "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Start timer only when the SedanPlayer starts moving." - }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "Physics3D::Physics3DBehavior::LinearVelocityLength" - }, - "parameters": [ - "Player", - "Physics3D", - ">", - "0" - ] - }, - { - "type": { - "inverted": true, - "value": "CompareTimer" + "value": "StringVariable" }, "parameters": [ - "", - "\"Time\"", - ">", - "0" + "GameState", + "=", + "\"Playing\"" ] } ], - "actions": [ - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"Time\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Display the timer." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "TextContainerCapability::TextContainerBehavior::SetValue" + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 }, - "parameters": [ - "TimeText", - "Text", - "=", - "\"Time: \" + TimeFormatter::SecondsToHHMMSS000(TimerElapsedTime(\"Time\"))" - ] - } - ] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Player controls", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + "comment": "Start timer only when the SedanPlayer starts moving." + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "\"Down\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Physics3D::PhysicsCar3D::SimulateBackwardKey" + "value": "Physics3D::Physics3DBehavior::LinearVelocityLength" }, "parameters": [ "Player", - "PhysicsCar3D" + "Physics3D", + ">", + "0" ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { "type": { - "value": "KeyFromTextPressed" + "inverted": true, + "value": "CompareTimer" }, "parameters": [ "", - "\"Up\"" + "\"Time\"", + ">", + "0" ] } ], "actions": [ { "type": { - "value": "Physics3D::PhysicsCar3D::SimulateForwardKey" + "value": "ResetTimer" }, "parameters": [ - "Player", - "PhysicsCar3D" + "", + "\"Time\"" ] } ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Physics3D::PhysicsCar3D::SimulateLeftKey" - }, - "parameters": [ - "Player", - "PhysicsCar3D" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "\"Right\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Physics3D::PhysicsCar3D::SimulateRightKey" - }, - "parameters": [ - "Player", - "PhysicsCar3D" - ] - } - ] + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Display the timer." }, { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "\"Space\"" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "Physics3D::PhysicsCar3D::SimulateHandBreakKey" + "value": "TextContainerCapability::TextContainerBehavior::SetValue" }, "parameters": [ - "Player", - "PhysicsCar3D" + "TimeText", + "Text", + "=", + "\"Time: \" + TimeFormatter::SecondsToHHMMSS000(TimerElapsedTime(\"Time\"))" ] } ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Player controls", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "Gamepads::C_Button_pressed" + "value": "KeyFromTextPressed" }, "parameters": [ "", - "1", - "\"LT\"", - "\"Up\"" + "\"Down\"" ] - }, + } + ], + "actions": [ { "type": { - "value": "Gamepads::C_Button_pressed" + "value": "Physics3D::PhysicsCar3D::SimulateBackwardKey" }, "parameters": [ - "", - "1", - "\"RT\"", - "\"Up\"" + "Player", + "PhysicsCar3D" ] } ] - } - ], - "actions": [ - { - "type": { - "value": "Physics3D::PhysicsCar3D::SimulateAcceleratorStick" - }, - "parameters": [ - "Player", - "PhysicsCar3D", - "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "1", - "\"Left\"", - "\"Any\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Physics3D::PhysicsCar3D::SimulateSteeringStick" - }, - "parameters": [ - "Player", - "PhysicsCar3D", - "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SystemInfo::HasTouchScreen" - }, - "parameters": [ - "" - ] - } - ], - "actions": [], - "events": [ + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "DepartScene" + "value": "KeyFromTextPressed" }, "parameters": [ - "" + "", + "\"Up\"" ] } ], "actions": [ { "type": { - "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" + "value": "Physics3D::PhysicsCar3D::SimulateForwardKey" }, "parameters": [ - "", - "\"Touch controls\"", - "0", - "0", - "0" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Cache" - }, - "parameters": [ - "SteeringJoystick" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PedalJoystick" - ] - }, - { - "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::ActivateControl" - }, - "parameters": [ - "SteeringJoystick", - "", - "" - ] - }, - { - "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::ActivateControl" - }, - "parameters": [ - "PedalJoystick", - "", - "" - ] - } + "Player", + "PhysicsCar3D" ] } ] @@ -3348,26 +3259,22 @@ "conditions": [ { "type": { - "value": "SpriteMultitouchJoystick::HasTouchStartedOnScreenSide" + "value": "KeyFromTextPressed" }, "parameters": [ "", - "SteeringJoystick", - "\"Left\"", - "" + "\"Left\"" ] } ], "actions": [ { "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::TeleportAndPress" + "value": "Physics3D::PhysicsCar3D::SimulateLeftKey" }, "parameters": [ - "SteeringJoystick", - "CursorX(\"UI\")", - "CursorY(\"UI\")", - "" + "Player", + "PhysicsCar3D" ] } ] @@ -3377,26 +3284,22 @@ "conditions": [ { "type": { - "value": "SpriteMultitouchJoystick::HasTouchStartedOnScreenSide" + "value": "KeyFromTextPressed" }, "parameters": [ "", - "PedalJoystick", - "\"Right\"", - "" + "\"Right\"" ] } ], "actions": [ { "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::TeleportAndPress" + "value": "Physics3D::PhysicsCar3D::SimulateRightKey" }, "parameters": [ - "PedalJoystick", - "CursorX(\"UI\")", - "CursorY(\"UI\")", - "" + "Player", + "PhysicsCar3D" ] } ] @@ -3406,23 +3309,22 @@ "conditions": [ { "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsPressed" + "value": "KeyFromTextPressed" }, "parameters": [ - "PedalJoystick", - "" + "", + "\"Space\"" ] } ], "actions": [ { "type": { - "value": "Physics3D::PhysicsCar3D::SimulateAcceleratorStick" + "value": "Physics3D::PhysicsCar3D::SimulateHandBreakKey" }, "parameters": [ "Player", - "PhysicsCar3D", - "-PedalJoystick.StickForceY()" + "PhysicsCar3D" ] } ] @@ -3432,47 +3334,60 @@ "conditions": [ { "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "SteeringJoystick", - "" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"LT\"", + "\"Up\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"RT\"", + "\"Up\"" + ] + } ] } ], "actions": [ { "type": { - "value": "Physics3D::PhysicsCar3D::SimulateSteeringStick" + "value": "Physics3D::PhysicsCar3D::SimulateAcceleratorStick" }, "parameters": [ "Player", "PhysicsCar3D", - "SteeringJoystick.StickForceX()" + "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" ] } ] - } - ] - }, - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [], - "events": [ + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "CollisionNP" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Player", - "Road", - "", "", + "1", + "\"Left\"", + "\"Any\"", "" ] } @@ -3480,23 +3395,12 @@ "actions": [ { "type": { - "value": "SetBooleanVariable" - }, - "parameters": [ - "IsOnTheRoad", - "True", - "" - ] - }, - { - "type": { - "value": "AdvancedWheelGrip::AdvancedWheelGrip::SetSurface" + "value": "Physics3D::PhysicsCar3D::SimulateSteeringStick" }, "parameters": [ "Player", - "AdvancedWheelGrip", - "\"Asphalt\"", - "" + "PhysicsCar3D", + "Gamepads::TriggerPressure(1, \"RT\") - Gamepads::TriggerPressure(1, \"LT\")" ] } ] @@ -3506,546 +3410,966 @@ "conditions": [ { "type": { - "value": "BooleanVariable" + "value": "SystemInfo::HasTouchScreen" }, "parameters": [ - "IsOnTheRoad", - "False", "" ] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "AdvancedWheelGrip::AdvancedWheelGrip::SetSurface" - }, - "parameters": [ - "Player", - "AdvancedWheelGrip", - "\"Grass\"", - "" - ] - } + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" + }, + "parameters": [ + "", + "\"Touch controls\"", + "0", + "0", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "SteeringJoystick" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PedalJoystick" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::ActivateControl" + }, + "parameters": [ + "SteeringJoystick", + "", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::ActivateControl" + }, + "parameters": [ + "PedalJoystick", + "", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::HasTouchStartedOnScreenSide" + }, + "parameters": [ + "", + "SteeringJoystick", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::TeleportAndPress" + }, + "parameters": [ + "SteeringJoystick", + "CursorX(\"UI\")", + "CursorY(\"UI\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::HasTouchStartedOnScreenSide" + }, + "parameters": [ + "", + "PedalJoystick", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::TeleportAndPress" + }, + "parameters": [ + "PedalJoystick", + "CursorX(\"UI\")", + "CursorY(\"UI\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsPressed" + }, + "parameters": [ + "PedalJoystick", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Physics3D::PhysicsCar3D::SimulateAcceleratorStick" + }, + "parameters": [ + "Player", + "PhysicsCar3D", + "-PedalJoystick.StickForceY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsPressed" + }, + "parameters": [ + "SteeringJoystick", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Physics3D::PhysicsCar3D::SimulateSteeringStick" + }, + "parameters": [ + "Player", + "PhysicsCar3D", + "SteeringJoystick.StickForceX()" + ] + } + ] + } + ] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Road", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "IsOnTheRoad", + "True", + "" + ] + }, + { + "type": { + "value": "AdvancedWheelGrip::AdvancedWheelGrip::SetSurface" + }, + "parameters": [ + "Player", + "AdvancedWheelGrip", + "\"Asphalt\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "IsOnTheRoad", + "False", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AdvancedWheelGrip::AdvancedWheelGrip::SetSurface" + }, + "parameters": [ + "Player", + "AdvancedWheelGrip", + "\"Grass\"", + "" + ] + } + ] + } + ], + "variables": [ + { + "folded": true, + "name": "IsOnTheRoad", + "type": "boolean", + "value": false + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Particles and car rev volume", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Dust", + "=", + "Player.Angle() + 180" + ] + }, + { + "type": { + "value": "MettreAutour" + }, + "parameters": [ + "Dust", + "Player", + "10", + "Player.Angle() - 180" + ] + }, + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Dust", + "=", + "Dust.X() + RandomFloatInRange(-6, 6)", + "=", + "Dust.Y() + RandomFloatInRange(-6, 6)" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetZ" + }, + "parameters": [ + "Dust", + "Object3D", + "=", + "Player.Object3D::Z() + 10" + ] + }, + { + "type": { + "value": "ModPitchSoundChannel" + }, + "parameters": [ + "", + "0", + "=", + "min((Player.Physics3D::LinearVelocityLength() / 300), 1)" + ] + }, + { + "type": { + "value": "ModVolumeSoundCanal" + }, + "parameters": [ + "", + "0", + "=", + "min(Player.Physics3D::LinearVelocityLength() * 10, 25)" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetFlow" + }, + "parameters": [ + "Dust", + "=", + "20 + 0.01 * Player.Physics3D::LinearVelocityLength()", + "-90" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" + }, + "parameters": [ + "Dust", + "=", + "30 + 0.1 * Player.Physics3D::LinearVelocityLength()", + "-90" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMax" + }, + "parameters": [ + "Dust", + "=", + "50 + 0.3 * Player.Physics3D::LinearVelocityLength()", + "-90" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Coins", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Coins indicator" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PickNearest" + }, + "parameters": [ + "Coin", + "Player.CenterX()", + "Player.CenterY()", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "RotateTowardAngle" + }, + "parameters": [ + "Arrow", + "AngleBetweenPositions(Player.CenterX(), Player.CenterY(), Coin.CenterX(), Coin.CenterY())", + "30", + "" + ] + }, + { + "type": { + "value": "MettreAutour" + }, + "parameters": [ + "Arrow", + "Player", + "60", + "Arrow.Angle()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "IsOnScreen::InOnScreen::IsOnScreen" + }, + "parameters": [ + "Coin", + "InOnScreen", + "0", + "" ] } ], - "variables": [ + "actions": [ { - "folded": true, - "name": "IsOnTheRoad", - "type": "boolean", - "value": false + "type": { + "value": "Cache" + }, + "parameters": [ + "Arrow" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "IsOnScreen::InOnScreen::IsOnScreen" + }, + "parameters": [ + "Coin", + "InOnScreen", + "10", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Arrow", + "" + ] } ] } - ], - "parameters": [] - } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Particles and car rev volume", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "Dust", - "=", - "Player.Angle() + 180" - ] - }, - { - "type": { - "value": "MettreAutour" - }, - "parameters": [ - "Dust", - "Player", - "10", - "Player.Angle() - 180" - ] - }, - { - "type": { - "value": "MettreXY" - }, - "parameters": [ - "Dust", - "=", - "Dust.X() + RandomFloatInRange(-6, 6)", - "=", - "Dust.Y() + RandomFloatInRange(-6, 6)" - ] - }, - { - "type": { - "value": "Scene3D::Base3DBehavior::SetZ" - }, - "parameters": [ - "Dust", - "Object3D", - "=", - "Player.Object3D::Z() + 10" - ] - }, - { - "type": { - "value": "ModPitchSoundChannel" - }, - "parameters": [ - "", - "0", - "=", - "min((Player.Physics3D::LinearVelocityLength() / 300), 1)" - ] - }, - { - "type": { - "value": "ModVolumeSoundCanal" - }, - "parameters": [ - "", - "0", - "=", - "min(Player.Physics3D::LinearVelocityLength() * 10, 25)" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetFlow" - }, - "parameters": [ - "Dust", - "=", - "20 + 0.01 * Player.Physics3D::LinearVelocityLength()", - "-90" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" - }, - "parameters": [ - "Dust", - "=", - "30 + 0.1 * Player.Physics3D::LinearVelocityLength()", - "-90" ] }, { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMax" - }, - "parameters": [ - "Dust", - "=", - "50 + 0.3 * Player.Physics3D::LinearVelocityLength()", - "-90" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Coin", + "Player", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "CoinPickUp", + "Coin.CenterX()", + "Coin.CenterY()", + "" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetCenterZ" + }, + "parameters": [ + "CoinPickUp", + "Object3D", + "=", + "Coin.Object3D::CenterZ()" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Coin", + "" + ] + }, + { + "type": { + "value": "TextContainerCapability::TextContainerBehavior::SetValue" + }, + "parameters": [ + "RemainingText", + "Text", + "=", + "\"Remaining: \" + ToString(SceneInstancesCount(Coin))" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Collect all coins" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneInstancesCount" + }, + "parameters": [ + "", + "Coin", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "GameState", + "=", + "\"GameOver\"" + ] + }, + { + "type": { + "value": "ChangeTimeScale" + }, + "parameters": [ + "", + "0.5" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "Score", + "=", + "TimerElapsedTime(\"Time\")" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1.5" + ] + }, + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"Leaderboard\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "CompareTimer" + }, + "parameters": [ + "", + "\"Time\"", + "<", + "HighScore" + ] + }, + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "HighScore", + "=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "HighScore", + "=", + "Score" + ] + }, + { + "type": { + "value": "EcrireFichierExp" + }, + "parameters": [ + "\"HighScore\"", + "\"HighScore\"", + "HighScore" + ] + }, + { + "type": { + "value": "TextObject::ChangeColor" + }, + "parameters": [ + "BestTimeText", + "\"248;231;28\"" + ] + } + ] + } + ] + } ] } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Coins", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Coins indicator" + ], + "parameters": [] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "PickNearest" - }, - "parameters": [ - "Coin", - "Player.CenterX()", - "Player.CenterY()", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "RotateTowardAngle" - }, - "parameters": [ - "Arrow", - "AngleBetweenPositions(Player.CenterX(), Player.CenterY(), Coin.CenterX(), Coin.CenterY())", - "30", - "" - ] - }, - { - "type": { - "value": "MettreAutour" - }, - "parameters": [ - "Arrow", - "Player", - "60", - "Arrow.Angle()" - ] - } - ], + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Collision sound effects", + "source": "", + "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "IsOnScreen::InOnScreen::IsOnScreen" + "value": "Physics3D::Collision" }, "parameters": [ - "Coin", - "InOnScreen", - "0", + "Player", + "Physics3D", + "Obstacle", + "Physics3D", "" ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] } ], "actions": [ { "type": { - "value": "Cache" + "value": "PlaySound" }, "parameters": [ - "Arrow" + "", + "Collision", + "", + "50", + "RandomFloatInRange(0.8,1)" ] } ] - }, + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Air control", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "inverted": true, - "value": "IsOnScreen::InOnScreen::IsOnScreen" + "value": "Physics3D::PhysicsCar3D::IsOnFloor" }, "parameters": [ - "Coin", - "InOnScreen", - "10", - "" + "Player", + "PhysicsCar3D" ] } ], "actions": [ { "type": { - "value": "Montre" + "value": "ActivateBehavior" }, "parameters": [ - "Arrow", - "" + "Player", + "AirControl3D", + "no" ] } ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Coin", - "Player", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "CoinPickUp", - "Coin.CenterX()", - "Coin.CenterY()", - "" - ] - }, - { - "type": { - "value": "Scene3D::Base3DBehavior::SetCenterZ" - }, - "parameters": [ - "CoinPickUp", - "Object3D", - "=", - "Coin.Object3D::CenterZ()" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Coin", - "" - ] - }, - { - "type": { - "value": "TextContainerCapability::TextContainerBehavior::SetValue" - }, - "parameters": [ - "RemainingText", - "Text", - "=", - "\"Remaining: \" + ToString(SceneInstancesCount(Coin))" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Collect all coins" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "SceneInstancesCount" + "inverted": true, + "value": "Physics3D::PhysicsCar3D::IsOnFloor" }, "parameters": [ - "", - "Coin", - "=", - "0" + "Player", + "PhysicsCar3D" ] } ], "actions": [ { "type": { - "value": "SetStringVariable" - }, - "parameters": [ - "GameState", - "=", - "\"GameOver\"" - ] - }, - { - "type": { - "value": "ChangeTimeScale" + "value": "ActivateBehavior" }, "parameters": [ - "", - "0.5" + "Player", + "AirControl3D", + "yes" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "SetNumberVariable" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "Score", - "=", - "TimerElapsedTime(\"Time\")" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "parameters": [], + "subInstructions": [ { "type": { - "value": "Wait" + "value": "KeyFromTextPressed" }, "parameters": [ - "1.5" + "", + "\"Down\"" ] }, { "type": { - "value": "Scene" + "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", - "\"Leaderboard\"", - "" + "1", + "\"LT\"", + "\"Up\"" ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { "type": { - "value": "BuiltinCommonInstructions::Or" + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsDirectionPushed8Way" }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "CompareTimer" - }, - "parameters": [ - "", - "\"Time\"", - "<", - "HighScore" - ] - }, - { - "type": { - "value": "NumberVariable" - }, - "parameters": [ - "HighScore", - "=", - "0" - ] - } + "parameters": [ + "PedalJoystick", + "\"Down\"", + "" ] } - ], - "actions": [ + ] + } + ], + "actions": [ + { + "type": { + "value": "AirControl3D::AirControl3D::SimulateMoveBackwardKey" + }, + "parameters": [ + "Player", + "AirControl3D", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ { "type": { - "value": "SetNumberVariable" + "value": "KeyFromTextPressed" }, "parameters": [ - "HighScore", - "=", - "Score" + "", + "\"Up\"" ] }, { "type": { - "value": "EcrireFichierExp" + "value": "Gamepads::C_Button_pressed" }, "parameters": [ - "\"HighScore\"", - "\"HighScore\"", - "HighScore" + "", + "1", + "\"RT\"", + "\"Up\"" ] }, { "type": { - "value": "TextObject::ChangeColor" + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ - "BestTimeText", - "\"248;231;28\"" + "PedalJoystick", + "\"Up\"", + "" ] } ] } + ], + "actions": [ + { + "type": { + "value": "AirControl3D::AirControl3D::SimulateMoveForwardKey" + }, + "parameters": [ + "Player", + "AirControl3D", + "" + ] + } ] } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Collision sound effects", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Physics3D::Collision" - }, - "parameters": [ - "Player", - "Physics3D", - "Obstacle", - "Physics3D", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } ], - "actions": [ - { - "type": { - "value": "PlaySound" - }, - "parameters": [ - "", - "Collision", - "", - "50", - "RandomFloatInRange(0.8,1)" - ] - } - ] + "parameters": [] } - ], - "parameters": [] + ] }, { "disabled": true, @@ -4262,181 +4586,6 @@ ] } ] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Air control", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Physics3D::PhysicsCar3D::IsOnFloor" - }, - "parameters": [ - "Player", - "PhysicsCar3D" - ] - } - ], - "actions": [ - { - "type": { - "value": "ActivateBehavior" - }, - "parameters": [ - "Player", - "AirControl3D", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Physics3D::PhysicsCar3D::IsOnFloor" - }, - "parameters": [ - "Player", - "PhysicsCar3D" - ] - } - ], - "actions": [ - { - "type": { - "value": "ActivateBehavior" - }, - "parameters": [ - "Player", - "AirControl3D", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "\"Down\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "1", - "\"LT\"", - "\"Up\"" - ] - }, - { - "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsDirectionPushed8Way" - }, - "parameters": [ - "PedalJoystick", - "\"Down\"", - "" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "AirControl3D::AirControl3D::SimulateMoveBackwardKey" - }, - "parameters": [ - "Player", - "AirControl3D", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "\"Up\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "1", - "\"RT\"", - "\"Up\"" - ] - }, - { - "type": { - "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::IsDirectionPushed8Way" - }, - "parameters": [ - "PedalJoystick", - "\"Up\"", - "" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "AirControl3D::AirControl3D::SimulateMoveForwardKey" - }, - "parameters": [ - "Player", - "AirControl3D", - "" - ] - } - ] - } - ], - "parameters": [] } ], "layers": [ @@ -4654,6 +4803,10 @@ "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, + { + "name": "MultiplayerObject", + "type": "Multiplayer::MultiplayerObjectBehavior" + }, { "name": "Object3D", "type": "Scene3D::Base3DBehavior"