2.12 loading the next level
This commit is contained in:
parent
1438dc7784
commit
ba3dbff06c
6 changed files with 168 additions and 6 deletions
|
@ -4,4 +4,8 @@ static class DeferredCalls {
|
|||
public static void ReloadCurrentScene(this Node node) {
|
||||
node.GetTree().CallDeferred("reload_current_scene");
|
||||
}
|
||||
|
||||
public static void ChangeSceneToFile(this Node node, string nextLevel) {
|
||||
node.GetTree().CallDeferred("change_scene_to_file", nextLevel);
|
||||
}
|
||||
}
|
|
@ -32,9 +32,10 @@ public partial class Player : RigidBody3D
|
|||
|
||||
private void OnPlayerCollision(Node body)
|
||||
{
|
||||
if (body.GetGroups().Contains("Goal"))
|
||||
if (body.GetGroups().Contains("Goal") && body is LandingPad)
|
||||
{
|
||||
CompleteLevel();
|
||||
LandingPad landingPad = (LandingPad)body;
|
||||
CompleteLevel(landingPad.nextLevel);
|
||||
}
|
||||
if (body.GetGroups().Contains("Hazard"))
|
||||
{
|
||||
|
@ -47,7 +48,7 @@ public partial class Player : RigidBody3D
|
|||
DeferredCalls.ReloadCurrentScene(this);
|
||||
}
|
||||
|
||||
private void CompleteLevel(){
|
||||
GetTree().Quit();
|
||||
private void CompleteLevel(string nextLevel){
|
||||
DeferredCalls.ChangeSceneToFile(this, nextLevel);
|
||||
}
|
||||
}
|
||||
|
|
8
scenes/levels/LandingPad.cs
Normal file
8
scenes/levels/LandingPad.cs
Normal file
|
@ -0,0 +1,8 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class LandingPad : CsgBox3D
|
||||
{
|
||||
[Export(PropertyHint.File, "*.tscn")]
|
||||
public string nextLevel;
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://dfhg7e2uhkh5t"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://dfhg7e2uhkh5t"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/levels/LandingPad.cs" id="1_6hf30"]
|
||||
[ext_resource type="PackedScene" uid="uid://cuduv6fwqtocs" path="res://scenes/characters/player.tscn" id="1_8cxtr"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_51aor"]
|
||||
|
@ -24,7 +25,7 @@ albedo_color = Color(0.269949, 0.472736, 0.828875, 1)
|
|||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjryw"]
|
||||
albedo_color = Color(0.270588, 0.662745, 0.321569, 1)
|
||||
|
||||
[node name="Level1" type="Node3D"]
|
||||
[node name="Level" type="Node3D"]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_mlv3m")
|
||||
|
@ -50,6 +51,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
|
|||
use_collision = true
|
||||
size = Vector3(2, 0.4, 2)
|
||||
material = SubResource("StandardMaterial3D_cjryw")
|
||||
script = ExtResource("1_6hf30")
|
||||
nextLevel = "res://scenes/levels/level_2.tscn"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5, 10)
|
||||
|
|
70
scenes/levels/level_2.tscn
Normal file
70
scenes/levels/level_2.tscn
Normal file
|
@ -0,0 +1,70 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://de65xxlydp5ee"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/levels/LandingPad.cs" id="1_xk07w"]
|
||||
[ext_resource type="PackedScene" uid="uid://cuduv6fwqtocs" path="res://scenes/characters/player.tscn" id="2_1eb7h"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_51aor"]
|
||||
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_qesig"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_51aor")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_mlv3m"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_qesig")
|
||||
tonemap_mode = 2
|
||||
glow_enabled = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pdpk6"]
|
||||
albedo_color = Color(0.52, 0.203233, 0.078, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_isbkj"]
|
||||
albedo_color = Color(1, 0.34902, 1, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5641g"]
|
||||
albedo_color = Color(0.269949, 0.472736, 0.828875, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjryw"]
|
||||
albedo_color = Color(0.270588, 0.662745, 0.321569, 1)
|
||||
|
||||
[node name="Level" type="Node3D"]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_mlv3m")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="Floor" type="CSGBox3D" parent="." groups=["Hazard"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4, 0)
|
||||
use_collision = true
|
||||
size = Vector3(30, 8, 5)
|
||||
material = SubResource("StandardMaterial3D_pdpk6")
|
||||
|
||||
[node name="Obstacle" type="CSGBox3D" parent="." groups=["Hazard"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
|
||||
use_collision = true
|
||||
size = Vector3(3, 2, 3)
|
||||
material = SubResource("StandardMaterial3D_isbkj")
|
||||
|
||||
[node name="LaunchPad" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 0)
|
||||
use_collision = true
|
||||
size = Vector3(2, 0.4, 2)
|
||||
material = SubResource("StandardMaterial3D_5641g")
|
||||
|
||||
[node name="LandingPad" type="CSGBox3D" parent="." groups=["Goal"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
|
||||
use_collision = true
|
||||
size = Vector3(2, 0.4, 2)
|
||||
material = SubResource("StandardMaterial3D_cjryw")
|
||||
script = ExtResource("1_xk07w")
|
||||
nextLevel = "res://scenes/levels/level_3.tscn"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5, 10)
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("2_1eb7h")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1.22214, 0)
|
76
scenes/levels/level_3.tscn
Normal file
76
scenes/levels/level_3.tscn
Normal file
|
@ -0,0 +1,76 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://d28am3qcuyvgl"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/levels/LandingPad.cs" id="1_2xhoj"]
|
||||
[ext_resource type="PackedScene" uid="uid://cuduv6fwqtocs" path="res://scenes/characters/player.tscn" id="2_nqrhm"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_51aor"]
|
||||
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_qesig"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_51aor")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_mlv3m"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_qesig")
|
||||
tonemap_mode = 2
|
||||
glow_enabled = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pdpk6"]
|
||||
albedo_color = Color(0.52, 0.203233, 0.078, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_isbkj"]
|
||||
albedo_color = Color(1, 0.34902, 1, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5641g"]
|
||||
albedo_color = Color(0.269949, 0.472736, 0.828875, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjryw"]
|
||||
albedo_color = Color(0.270588, 0.662745, 0.321569, 1)
|
||||
|
||||
[node name="Level" type="Node3D"]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_mlv3m")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="Floor" type="CSGBox3D" parent="." groups=["Hazard"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4, 0)
|
||||
use_collision = true
|
||||
size = Vector3(30, 8, 5)
|
||||
material = SubResource("StandardMaterial3D_pdpk6")
|
||||
|
||||
[node name="Obstacle" type="CSGBox3D" parent="." groups=["Hazard"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
|
||||
use_collision = true
|
||||
size = Vector3(10, 2, 3)
|
||||
material = SubResource("StandardMaterial3D_isbkj")
|
||||
|
||||
[node name="Obstacle2" type="CSGBox3D" parent="." groups=["Hazard"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9, 0)
|
||||
use_collision = true
|
||||
size = Vector3(10, 2, 3)
|
||||
material = SubResource("StandardMaterial3D_isbkj")
|
||||
|
||||
[node name="LaunchPad" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 0)
|
||||
use_collision = true
|
||||
size = Vector3(2, 0.4, 2)
|
||||
material = SubResource("StandardMaterial3D_5641g")
|
||||
|
||||
[node name="LandingPad" type="CSGBox3D" parent="." groups=["Goal"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
|
||||
use_collision = true
|
||||
size = Vector3(2, 0.4, 2)
|
||||
material = SubResource("StandardMaterial3D_cjryw")
|
||||
script = ExtResource("1_2xhoj")
|
||||
nextLevel = "res://scenes/levels/level_1.tscn"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5, 10)
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("2_nqrhm")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1.22214, 0)
|
Loading…
Add table
Reference in a new issue