diff --git a/res/project/game.proj b/res/project/game.proj index 2363ed2..822e358 100644 --- a/res/project/game.proj +++ b/res/project/game.proj @@ -19,7 +19,11 @@ { "id": "MainScene", "path": "scenes://MainScene.evsc" + }, + { + "id": "SideScene", + "path": "scenes://SideScene.evsc" } ], - "activeScene": "MainScene" + "activeScene": "SideScene" } diff --git a/res/project/res/scenes/MainScene.evsc b/res/project/res/scenes/MainScene.evsc index 61d7bd1..66c9317 100644 --- a/res/project/res/scenes/MainScene.evsc +++ b/res/project/res/scenes/MainScene.evsc @@ -20,8 +20,8 @@ }, { "type": "ScriptComponent", - "script_name": "CameraController", - "script_path": "scripts://Scene0/camera.lua" + "script_name": "MainCameraController", + "script_path": "scripts://MainScene/camera.lua" } ] }, @@ -30,7 +30,7 @@ "components": [ { "type": "TransformComponent", - "position": [0.0, 0.0, -15.0], + "position": [0.0, 10.0, -15.0], "rotation": [0.0, 0.0, 0.0], "scale": [1.0, 1.0, 1.0] }, @@ -46,8 +46,8 @@ }, { "type": "ScriptComponent", - "script_name": "PlayerController", - "script_path": "scripts://Scene0/player.lua" + "script_name": "MainPlayerController", + "script_path": "scripts://MainScene/player.lua" } ], "children": [ @@ -66,14 +66,22 @@ "mass": 1.0, "restitution": 1.0, "collisionShape": { - "type": "Sphere", - "radius": 1.0 + "type": "Box", + "halfExtents": [1.0, 1.0, 1.0] } }, + { + "type": "CameraComponent", + "view": "Perspective", + "fov": 120, + "near": 0.001, + "far": 1000, + "aspectRatio": 1.3333 + }, { "type": "ScriptComponent", - "script_name": "ChildController", - "script_path": "scripts://Scene0/child.lua" + "script_name": "MainChildController", + "script_path": "scripts://MainScene/child.lua" } ] } @@ -94,11 +102,12 @@ "mass": 0.0, "restitution": 0.0, "collisionShape": { - "type": "Sphere", - "radius": 10.0 + "type": "Box", + "halfExtents": [10.0, 10.0, 10.0] } } ] } - ] + ], + "activeCamera": "Camera" } diff --git a/res/project/res/scenes/SideScene.evsc b/res/project/res/scenes/SideScene.evsc new file mode 100644 index 0000000..dedd80d --- /dev/null +++ b/res/project/res/scenes/SideScene.evsc @@ -0,0 +1,105 @@ +{ + "id":"SisyphusoScene", + "nodes": [ + { + "id": "Camera", + "components": [ + { + "type": "TransformComponent", + "position": [0.0, 0.0, 0.0], + "rotation": [0.0, 0.0, 0.0], + "scale": [1.0, 1.0, 1.0] + }, + { + "type": "CameraComponent", + "view": "Perspective", + "fov": 60, + "near": 0.001, + "far": 1000, + "aspectRatio": 1.3333 + }, + { + "type": "ScriptComponent", + "script_name": "SideCameraController", + "script_path": "scripts://SideScene/camera.lua" + } + ] + }, + { + "id": "Player", + "components": [ + { + "type": "TransformComponent", + "position": [0.0, 0.0, -15.0], + "rotation": [0.0, 0.0, 0.0], + "scale": [1.0, 1.0, 1.0] + }, + { + "type": "RigidbodyComponent", + "rigidbodyType": "Dynamic", + "mass": 1.0, + "restitution": 1.0, + "collisionShape": { + "type": "Sphere", + "radius": 1.0 + } + }, + { + "type": "ScriptComponent", + "script_name": "SidePlayerController", + "script_path": "scripts://SideScene/player.lua" + } + ], + "children": [ + { + "id": "Child", + "components": [ + { + "type": "TransformComponent", + "position": [0.0, 5.0, -5.0], + "rotation": [0.0, 0.0, 0.0], + "scale": [1.0, 1.0, 1.0] + }, + { + "type": "RigidbodyComponent", + "rigidbodyType": "Kinematic", + "mass": 1.0, + "restitution": 1.0, + "collisionShape": { + "type": "Sphere", + "radius": 1.0 + } + }, + { + "type": "ScriptComponent", + "script_name": "SideChildController", + "script_path": "scripts://SideScene/child.lua" + } + ] + } + ] + }, + { + "id": "Ground", + "components": [ + { + "type": "TransformComponent", + "position": [0.0, -15.0, -15.0], + "rotation": [0.0, 0.0, 0.0], + "scale": [1.0, 1.0, 1.0] + }, + { + "type": "RigidbodyComponent", + "rigidbodyType": "Static", + "mass": 0.0, + "restitution": 0.0, + "collisionShape": { + "type": "Sphere", + "radius": 10.0 + } + } + ] + } + ], + "activeCamera": "Camera" +} diff --git a/res/project/res/scripts/Scene0/camera.lua b/res/project/res/scripts/MainScene/camera.lua similarity index 81% rename from res/project/res/scripts/Scene0/camera.lua rename to res/project/res/scripts/MainScene/camera.lua index 876e20e..9665d3a 100644 --- a/res/project/res/scripts/Scene0/camera.lua +++ b/res/project/res/scripts/MainScene/camera.lua @@ -1,8 +1,13 @@ this.on_init = function() this.speed = 0.1 + this.original_position = this.position end this.on_fixedupdate = function() + if Input.getKeyJustPressed(Input.KeyCode.Enter) then + gotoScene('SideScene') + end + if Input.getKeyDown(Input.KeyCode.Up) then this.position = this.position + Vec3:new(0, 1, 0) * this.speed end diff --git a/res/project/res/scripts/Scene0/child.lua b/res/project/res/scripts/MainScene/child.lua similarity index 100% rename from res/project/res/scripts/Scene0/child.lua rename to res/project/res/scripts/MainScene/child.lua diff --git a/res/project/res/scripts/Scene0/player.lua b/res/project/res/scripts/MainScene/player.lua similarity index 91% rename from res/project/res/scripts/Scene0/player.lua rename to res/project/res/scripts/MainScene/player.lua index 1dba869..90782f6 100644 --- a/res/project/res/scripts/Scene0/player.lua +++ b/res/project/res/scripts/MainScene/player.lua @@ -1,6 +1,6 @@ -this.on_collisionenter = function(other) +-- this.on_collisionenter = function(other) -- other.position = other.position + Vec3:new(3.2, 0, 0) -end +-- end this.on_update = function () rb = this:getComponent(Rigidbody) diff --git a/res/project/res/scripts/Scene1/camera.lua b/res/project/res/scripts/Scene1/camera.lua deleted file mode 100644 index e69de29..0000000 diff --git a/res/project/res/scripts/Scene1/child.lua b/res/project/res/scripts/Scene1/child.lua deleted file mode 100644 index 121f894..0000000 --- a/res/project/res/scripts/Scene1/child.lua +++ /dev/null @@ -1,23 +0,0 @@ -this.on_init = function () - this.custom_eulerangles = Vec3:new() - this.custom_angularvelocity = Vec3:new(0, 0.01, 0) -end - -this.on_update = function () - rb = this:getComponent(Rigidbody) - if Input.getKeyDown(Input.KeyCode.Enter) then - rb:addForce(Vec3:new(0, 100, 0)) - end - if Input.getKeyDown(Input.KeyCode.Right) then - rb:addForce(Vec3:new(10, 0, 0)) - end - if Input.getKeyDown(Input.KeyCode.Left) then - rb:addForce(Vec3:new(-10, 0, 0)) - end - if Input.getKeyDown(Input.KeyCode.Up) then - rb:addForce(Vec3:new(0, 0, -10)) - end - if Input.getKeyDown(Input.KeyCode.Down) then - rb:addForce(Vec3:new(0, 0, 10)) - end -end diff --git a/res/project/res/scripts/SideScene/camera.lua b/res/project/res/scripts/SideScene/camera.lua new file mode 100644 index 0000000..1721557 --- /dev/null +++ b/res/project/res/scripts/SideScene/camera.lua @@ -0,0 +1,23 @@ +this.on_init = function() + this.speed = 0.1 + this.original_position = this.position +end + +this.on_fixedupdate = function() + if Input.getKeyJustPressed(Input.KeyCode.Enter) then + gotoScene('MainScene') + end + + if Input.getKeyDown(Input.KeyCode.Up) then + this.position = this.position + Vec3:new(0, 1, 0) * this.speed + end + if Input.getKeyDown(Input.KeyCode.Down) then + this.position = this.position - Vec3:new(0, 1, 0) * this.speed + end + if Input.getKeyDown(Input.KeyCode.Right) then + this.position = this.position + Vec3:new(1, 0, 0) * this.speed + end + if Input.getKeyDown(Input.KeyCode.Left) then + this.position = this.position - Vec3:new(1, 0, 0) * this.speed + end +end diff --git a/res/project/res/scripts/SideScene/child.lua b/res/project/res/scripts/SideScene/child.lua new file mode 100644 index 0000000..2c4a2cf --- /dev/null +++ b/res/project/res/scripts/SideScene/child.lua @@ -0,0 +1,14 @@ +this.on_init = function () + this.custom_eulerangles = Vec3:new() + this.custom_angularvelocity = Vec3:new(0, 0.01, 0) +end + +this.on_fixedupdate = function () + if Input.getKeyDown(Input.KeyCode.Left) then + this.custom_eulerangles:add(Vec3:new(0,0.01,0)) + end + if Input.getKeyDown(Input.KeyCode.Right) then + this.custom_eulerangles:sub(Vec3:new(0,0.01,0)) + end + this.eulerAngles = this.custom_eulerangles +end diff --git a/res/project/res/scripts/Scene1/player.lua b/res/project/res/scripts/SideScene/player.lua similarity index 82% rename from res/project/res/scripts/Scene1/player.lua rename to res/project/res/scripts/SideScene/player.lua index bbbd7df..90782f6 100644 --- a/res/project/res/scripts/Scene1/player.lua +++ b/res/project/res/scripts/SideScene/player.lua @@ -1,6 +1,6 @@ -this.on_collisionenter = function(other) - other.position = other.position + Vec3:new(0.2, 0, 0) -end +-- this.on_collisionenter = function(other) + -- other.position = other.position + Vec3:new(3.2, 0, 0) +-- end this.on_update = function () rb = this:getComponent(Rigidbody)