feat: add puzzleButton node; add logic and collisions to it;
This commit is contained in:
@@ -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=")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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!")
|
||||
@@ -0,0 +1 @@
|
||||
uid://cdoeb8xo16tpb
|
||||
@@ -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"]
|
||||
Reference in New Issue
Block a user