diff --git a/Scenes/GameScene/game_scene.tscn b/Scenes/GameScene/game_scene.tscn index e01aedb..63c5d88 100644 --- a/Scenes/GameScene/game_scene.tscn +++ b/Scenes/GameScene/game_scene.tscn @@ -6,6 +6,7 @@ [ext_resource type="Texture2D" uid="uid://c3l7w3n700qx3" path="res://Ninja Adventure - Asset Pack/Backgrounds/Tilesets/TilesetReliefDetail.png" id="3_oi8ly"] [ext_resource type="PackedScene" uid="uid://dhvuy8co661xo" path="res://Scenes/SceneEntrance/scene_entrance.tscn" id="5_oi8ly"] [ext_resource type="PackedScene" uid="uid://orvnsdbeji56" path="res://Scenes/Block/block.tscn" id="6_12ovb"] +[ext_resource type="PackedScene" uid="uid://onpen57mc6i8" path="res://Scenes/PuzzleButton/puzzle_button.tscn" id="7_ohrk8"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_04h35"] texture = ExtResource("1_l6yvh") @@ -789,6 +790,9 @@ tile_set = SubResource("TileSet_bqpwv") tile_map_data = PackedByteArray("AAD/////AAAMAAgAAAD//wAAAAAMAAgAAAD//wEAAAAMAAgAAAD//wIAAAAMAAgAAAD//wMAAAAMAAgAAAAAAP//AAAMAAgAAAAAAAAAAAAMAAgAAAAAAAEAAAAMAAgAAAAAAAIAAAAMAAgAAAAAAAMAAAAQAAgAAAD+/wQAAAARAAkAAAD+/wUAAAAMAAgAAAD//wQAAAAMAAgAAAD//wUAAAAMAAgAAAAAAAQAAAANAAgAAAD+/wYAAAAMAAgAAAD+/wcAAAAMAAgAAAD+/wgAAAAMAAgAAAD+/wkAAAAMAAgAAAD//wYAAAAMAAgAAAD//wcAAAAMAAgAAAD//wgAAAAMAAgAAAD//wkAAAAMAAgAAAAAAP3/AAAMAAgAAAAAAP7/AAAMAAgAAAABAP3/AAAMAAgAAAABAP7/AAAMAAgAAAACAP3/AAAMAAgAAAACAP7/AAAMAAgAAAADAP3/AAAMAAgAAAADAP7/AAAMAAgAAAAEAP3/AAAMAAgAAAAEAP7/AAAMAAgAAAAFAP3/AAAMAAgAAAAFAP7/AAAMAAgAAAAFAPv/AAALAAgAAAAFAPz/AAARAAkAAAAGAPv/AAAMAAgAAAAGAPz/AAAMAAgAAAAGAP3/AAAQAAgAAAAGAPr/AAAMAAgAAAAHAPr/AAAMAAgAAAAHAPv/AAAMAAgAAAAIAPr/AAAMAAgAAAAIAPv/AAAMAAgAAAAJAPr/AAAMAAgAAAAJAPv/AAAMAAgAAAAKAPr/AAAMAAgAAAAKAPv/AAAMAAgAAAALAPr/AAAQAAsAAAALAPv/AAANAAgAAAD9//3/AAAMAAgAAAD9//7/AAARAAgAAAD+//3/AAAMAAgAAAD+//7/AAAMAAgAAAD///3/AAAMAAgAAAD///7/AAAMAAgAAAD7//v/AAAMAAgAAAD7//z/AAARAAgAAAD7//3/AAALAAgAAAD8//v/AAAMAAgAAAD8//z/AAAMAAgAAAD8//3/AAAMAAgAAAD0//r/AAALAAgAAAD0//v/AAALAAgAAAD1//r/AAAMAAgAAAD1//v/AAAMAAgAAAD2//r/AAAMAAgAAAD2//v/AAAMAAgAAAD3//r/AAAMAAgAAAD3//v/AAAMAAgAAAD4//r/AAAMAAgAAAD4//v/AAAMAAgAAAD5//r/AAAMAAgAAAD5//v/AAAMAAgAAAD6//r/AAAMAAgAAAD6//v/AAAMAAgAAAD7//r/AAAMAAgAAAD8//r/AAAMAAgAAAAGAAMAAAANAAkAAAAGAAIAAAANAAgAAAAGAAEAAAANAAgAAAAGAAAAAAANAAgAAAAGAP//AAANAAgAAAAGAP7/AAANAAgAAAAFAAMAAAAMAAkAAAAFAAIAAAAMAAgAAAAFAAEAAAAMAAgAAAAFAAAAAAAMAAgAAAAFAP//AAAMAAgAAAAEAAMAAAAMAAkAAAAEAAIAAAAMAAgAAAAEAAEAAAAMAAgAAAAEAAAAAAAMAAgAAAAEAP//AAAMAAgAAAADAAMAAAAMAAkAAAADAAIAAAAMAAgAAAADAAEAAAAMAAgAAAADAAAAAAAMAAgAAAADAP//AAAMAAgAAAACAAMAAAAMAAkAAAACAAIAAAAMAAgAAAACAAEAAAAMAAgAAAACAAAAAAAMAAgAAAACAP//AAAMAAgAAAABAAMAAAAMAAkAAAABAAIAAAAMAAgAAAABAAEAAAAMAAgAAAABAAAAAAAMAAgAAAABAP//AAAMAAgAAAALAP3/AAANAAkAAAALAPz/AAANAAgAAAAKAP3/AAAMAAkAAAAKAPz/AAAMAAgAAAAJAP3/AAAMAAkAAAAJAPz/AAAMAAgAAAAIAP3/AAAMAAkAAAAIAPz/AAAMAAgAAAAHAP3/AAAMAAkAAAAHAPz/AAAMAAgAAAALAPn/AAANAAgAAAALAPj/AAANAAgAAAALAPf/AAANAAcAAAAKAPn/AAAMAAgAAAAKAPj/AAAMAAgAAAAKAPf/AAAMAAcAAAAJAPn/AAAMAAgAAAAJAPj/AAAMAAgAAAAJAPf/AAAMAAcAAAAIAPn/AAAMAAgAAAAIAPj/AAAMAAgAAAAIAPf/AAAMAAcAAAAHAPn/AAAMAAgAAAAHAPj/AAAMAAgAAAAHAPf/AAAMAAcAAAAGAPn/AAAMAAgAAAAGAPj/AAAMAAgAAAAGAPf/AAAMAAcAAAAFAPr/AAARAAgAAAAFAPn/AAAMAAgAAAAFAPj/AAAMAAgAAAAFAPf/AAAMAAcAAAAEAPr/AAALAAkAAAAEAPn/AAALAAgAAAAEAPj/AAALAAgAAAAEAPf/AAALAAcAAAAEAPz/AAAMAAcAAAADAPz/AAAMAAcAAAACAPz/AAAMAAcAAAABAPz/AAAMAAcAAAAAAPz/AAAMAAcAAAD///z/AAAMAAcAAAD+//z/AAAMAAcAAAD9//z/AAAQAAkAAAD9//v/AAANAAgAAAD9//r/AAANAAgAAAD9//n/AAANAAcAAAD8//n/AAAMAAcAAAD7//n/AAAMAAcAAAD6//n/AAAMAAcAAAD5//n/AAAMAAcAAAD4//n/AAAMAAcAAAD3//n/AAAMAAcAAAD2//n/AAAMAAcAAAD6//z/AAAMAAkAAAD5//z/AAAMAAkAAAD4//z/AAAMAAkAAAD3//z/AAAMAAkAAAD2//z/AAAMAAkAAAD8//7/AAAMAAkAAAD7//7/AAALAAkAAAD+////AAARAAgAAAD9////AAALAAkAAAD+/wMAAAALAAgAAAD+/wIAAAALAAgAAAD+/wEAAAALAAgAAAD+/wAAAAALAAgAAAD9/wkAAAALAAkAAAD9/wgAAAALAAgAAAD9/wcAAAALAAgAAAD9/wYAAAALAAgAAAD9/wUAAAALAAgAAAD9/wQAAAALAAcAAAAAAAkAAAANAAkAAAAAAAgAAAANAAgAAAAAAAcAAAAQAAgAAAAAAAYAAAAQAAkAAAAAAAUAAAANAAgAAAD1//n/AAAMAAcAAAD0//n/AAALAAcAAAD0//z/AAAPAAgAAAD0//3/AAAOAAkAAAD1//z/AAAMAAkAAAAHAAcAAAANAAoAAAAGAAcAAAAMAAoAAAAFAAcAAAAMAAoAAAAEAAcAAAAMAAoAAAADAAcAAAAMAAoAAAACAAcAAAAMAAoAAAABAAcAAAAQAAoAAAABAAYAAAANAAcAAAA=") tile_set = SubResource("TileSet_bqpwv") +[node name="PuzzleButton" parent="." unique_id=125477561 instance=ExtResource("7_ohrk8")] +position = Vector2(-37, -33) + [node name="ObstacleLayer" type="TileMapLayer" parent="." unique_id=703817951] y_sort_enabled = true tile_map_data = PackedByteArray("AAAIAP7/AAAAAAIAAAAKAP3/AAAAAAIAAAAMAP7/AAAAAAIAAAAIAP//AAAAAAIAAAALAAAAAAAAAAIAAAAIAAEAAAAAAAIAAAALAAIAAAAAAAIAAAACAAQAAAAAAAIAAAAFAAMAAAAAAAIAAAAFAAUAAAAAAAIAAAAHAAMAAAAAAAIAAAAIAAQAAAAAAAIAAAAJAAMAAAAAAAIAAAALAAQAAAAAAAIAAAD///f/AAAAAAIAAAD///j/AAAAAAIAAAD///n/AAAAAAIAAAACAPf/AAAAAAIAAAACAPj/AAAAAAIAAAACAPn/AAAAAAIAAAAAAPr/AAAAAAIAAAAEAPr/AAAAAAIAAAD8//f/AAAAAAIAAAD5//f/AAAAAAIAAAD2//f/AAAAAAIAAADz//f/AAAAAAIAAAD1//b/AAAAAAIAAAD3//b/AAAAAAIAAAD5//b/AAAAAAIAAAD8//b/AAAAAAIAAAABAPb/AAAAAAIAAAAEAPX/AAAAAAIAAAADAPb/AAAAAAIAAAAHAPX/AAAAAAIAAAAKAPX/AAAAAAIAAAANAPb/AAAAAAIAAAANAPf/AAAAAAIAAAANAPj/AAAAAAIAAAANAPz/AAAAAAIAAAANAPv/AAAAAAIAAAAIAPn/AQAAAAcAAAA=") diff --git a/Scenes/Player/player.gd b/Scenes/Player/player.gd index bf253f0..ddff059 100644 --- a/Scenes/Player/player.gd +++ b/Scenes/Player/player.gd @@ -12,7 +12,7 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: +func _physics_process(delta: float) -> void: var move_vector: Vector2 = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down") velocity = move_vector * move_speed diff --git a/Scenes/PuzzleButton/puzzle_button.gd b/Scenes/PuzzleButton/puzzle_button.gd new file mode 100644 index 0000000..6fa1d6c --- /dev/null +++ b/Scenes/PuzzleButton/puzzle_button.gd @@ -0,0 +1,24 @@ +extends Area2D +var bodies_on_top = 0 +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + + +func _on_body_entered(body: Node2D) -> void: + bodies_on_top = bodies_on_top + 1 + if (body.is_in_group("pushable") or body is Player) and bodies_on_top == 1: + $AnimatedSprite2D.play("pressed") + print("PRESSED!") + + +func _on_body_exited(body: Node2D) -> void: + bodies_on_top = bodies_on_top - 1 + if (body.is_in_group("pushable") or body is Player) and bodies_on_top == 0: + $AnimatedSprite2D.play("unpressed") + print("UNPRESSED!") diff --git a/Scenes/PuzzleButton/puzzle_button.gd.uid b/Scenes/PuzzleButton/puzzle_button.gd.uid new file mode 100644 index 0000000..02fdc3e --- /dev/null +++ b/Scenes/PuzzleButton/puzzle_button.gd.uid @@ -0,0 +1 @@ +uid://cdoeb8xo16tpb diff --git a/Scenes/PuzzleButton/puzzle_button.tscn b/Scenes/PuzzleButton/puzzle_button.tscn new file mode 100644 index 0000000..00de8e9 --- /dev/null +++ b/Scenes/PuzzleButton/puzzle_button.tscn @@ -0,0 +1,47 @@ +[gd_scene format=3 uid="uid://onpen57mc6i8"] + +[ext_resource type="Texture2D" uid="uid://c0v63n2kjtvvu" path="res://Ninja Adventure - Asset Pack/Backgrounds/Tilesets/TilesetDungeon.png" id="1_4jafl"] +[ext_resource type="Script" uid="uid://cdoeb8xo16tpb" path="res://Scenes/PuzzleButton/puzzle_button.gd" id="1_dls00"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_chgu2"] +size = Vector2(14, 12) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dls00"] +atlas = ExtResource("1_4jafl") +region = Rect2(16, 16, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lffmm"] +atlas = ExtResource("1_4jafl") +region = Rect2(0, 16, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_chgu2"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_dls00") +}], +"loop": 1, +"name": &"pressed", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_lffmm") +}], +"loop": 1, +"name": &"unpressed", +"speed": 5.0 +}] + +[node name="PuzzleButton" type="Area2D" unique_id=125477561] +script = ExtResource("1_dls00") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=389969783] +shape = SubResource("RectangleShape2D_chgu2") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=1705118892] +sprite_frames = SubResource("SpriteFrames_chgu2") +animation = &"unpressed" + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] +[connection signal="body_exited" from="." to="." method="_on_body_exited"]