diff --git a/core/dynamic_polygon.tscn b/core/dynamic_polygon.tscn index 041ae0c..5fe4d3a 100644 --- a/core/dynamic_polygon.tscn +++ b/core/dynamic_polygon.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://core/dynamic_polygon.gd" id="1_ga37f"] -[sub_resource type="OccluderPolygon2D" id="OccluderPolygon2D_ucwen"] +[sub_resource type="OccluderPolygon2D" id="OccluderPolygon2D_o46no"] [node name="DynamicPolygon" type="CollisionPolygon2D"] script = ExtResource("1_ga37f") @@ -11,4 +11,4 @@ script = ExtResource("1_ga37f") [node name="LightOccluder2D" type="LightOccluder2D" parent="."] editor_description = "For particle collisions" -occluder = SubResource("OccluderPolygon2D_ucwen") +occluder = SubResource("OccluderPolygon2D_o46no") diff --git a/core/globals/levels.gd b/core/globals/levels.gd index 6764e83..030c189 100644 --- a/core/globals/levels.gd +++ b/core/globals/levels.gd @@ -7,11 +7,11 @@ class Entrypoint extends Object: func _init( scene_name_: String, player_position_: Vector2, - reset_physics: bool + reset_physics_: bool ) -> void: self.scene_name = scene_name_ self.player_position = player_position_ - self.reset_physics = reset_physics + self.reset_physics = reset_physics_ const SCENES = { "intro": "uid://c6w7lrydi43ts" @@ -52,6 +52,8 @@ func load_entrypoint(ep_name: String) -> bool: # returns true on success var e: Entrypoint = ENTRYPOINTS[ep_name] if load_scene(e.scene_name): player.position = e.player_position + if e.reset_physics: + player.reset_physics() return true else: return false diff --git a/levels/intro.gd b/levels/intro.gd new file mode 100644 index 0000000..1fbee27 --- /dev/null +++ b/levels/intro.gd @@ -0,0 +1,5 @@ +extends Node2D + +func _on_area_2d_body_entered(body: Node2D) -> void: + if body == Levels.player: + Levels.load_entrypoint("intro_start") diff --git a/levels/intro.tscn b/levels/intro.tscn index 72f5980..6a4b8a9 100644 --- a/levels/intro.tscn +++ b/levels/intro.tscn @@ -1,3 +1,27 @@ -[gd_scene format=3 uid="uid://c6w7lrydi43ts"] +[gd_scene load_steps=3 format=3 uid="uid://c6w7lrydi43ts"] + +[ext_resource type="PackedScene" uid="uid://cbynoofsjcl45" path="res://core/dynamic_polygon.tscn" id="1_cup10"] +[ext_resource type="Script" path="res://levels/intro.gd" id="1_pgj82"] [node name="Intro" type="Node2D"] +script = ExtResource("1_pgj82") + +[node name="StaticBody2D" type="StaticBody2D" parent="."] + +[node name="DynamicPolygon" parent="StaticBody2D" instance=ExtResource("1_cup10")] +polygon = PackedVector2Array(64, 200, 64, 432, -176, 432, -176, 512, 960, 512, 960, 384, 648, 384, 648, 344, 704, 344, 704, 288, 616, 288, 616, 232, 408, 232, 408, 304, 544, 304, 544, 384, 544, 432, 408, 432, 408, 392, 488, 392, 488, 352, 360, 352, 360, 440, 256, 440, 256, 320, 192, 320, 192, 440, 128, 440, 128, 200) + +[node name="DynamicPolygon2" parent="StaticBody2D" instance=ExtResource("1_cup10")] +polygon = PackedVector2Array(448, 64, 448, 88, 512, 88, 512, 128, 384, 128, 384, 152, 640, 152, 640, 128, 688, 128, 688, 64) + +[node name="Area2D" type="Area2D" parent="."] + +[node name="DynamicPolygon" parent="Area2D" instance=ExtResource("1_cup10")] +polygon = PackedVector2Array(128, 384, 192, 384, 192, 440, 128, 440) +color = Color(1, 0.1, 0, 1) + +[node name="DynamicPolygon2" parent="Area2D" instance=ExtResource("1_cup10")] +polygon = PackedVector2Array(256, 384, 360, 384, 360, 440, 256, 440) +color = Color(1, 0.1, 0, 1) + +[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]