From e0fa4e24d45e26a451c70aa58ef2ee9cfffb0d0f Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Mon, 13 Mar 2023 22:07:40 +0100 Subject: [PATCH] Fetzi die lustige Landmine --- assets/contraption/Dohr.aseprite | Bin 0 -> 3604 bytes assets/obstacle object/mine.aseprite | Bin 0 -> 1844 bytes assets/obstacle object/mine.png | Bin 0 -> 295 bytes assets/obstacle object/mine.png.import | 35 ++++++++ src/Levels/01 Level.tscn | 13 ++- src/Levels/02 Level.tscn | 2 +- src/Levels/03 Level.tscn | 2 +- src/Levels/LevelTemplate.tscn | 4 +- src/ObstacleObjects/Mine.gd | 22 +++++ src/ObstacleObjects/Mine.tscn | 117 +++++++++++++++++++++++++ 10 files changed, 188 insertions(+), 7 deletions(-) create mode 100644 assets/contraption/Dohr.aseprite create mode 100644 assets/obstacle object/mine.aseprite create mode 100644 assets/obstacle object/mine.png create mode 100644 assets/obstacle object/mine.png.import create mode 100644 src/ObstacleObjects/Mine.gd create mode 100644 src/ObstacleObjects/Mine.tscn diff --git a/assets/contraption/Dohr.aseprite b/assets/contraption/Dohr.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..b69d55257840c02eac077789f1ad26f2d5e7a3af GIT binary patch literal 3604 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 Wq=xm;CG4hH)qI||<|xEmp8o>s8Fw}S literal 0 HcmV?d00001 diff --git a/assets/obstacle object/mine.aseprite b/assets/obstacle object/mine.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..fadc88f96f144bcaed1e5ace06ff6096a7bffe81 GIT binary patch literal 1844 zcmcJQjZc(y9Ke4lC$<^adO;W^$F!aD{w9TiycD2;F_}YXV73Cu0MHCt) z39PLUW=+#!uCq)mmnczwQiz3>n8u>0(IIDXIb{Jx(L1UV=* z*t|eF^QBXEN+|=c|BeP_Cnwb-eElDXevwi$W{vf#8ZO|(%Ry(oAo$(^Ig^~V8U}{0fX+|4z*XUL53vQ$ z!i?r{SltrIX+7Ng_FFJz^JW+jAkSEp zx)vq``9f1^61;wNBm8=o>_$PH>~pk->~Kbo?0@aS7-%vk!}|jt!P6s`;fE$!|CNS4 za9xhvmDh72aH+G4ybqGqVm8V8hO#PHd7&Mi7`+Mm$0nfhN*^q5l4neN;{aTjmPn~ za?0WPnlE6l(Fn%|Wi|6%+5ds=Hu(LK!>~Mm2Ta+p0S4+lVC%u%@K&4E$)QhpZyA+2 z&UMOlr#?RlZx@up*2HXR2#$ju%a%h9nDLt2PkNzz#^&U%{Y|{LRbX@8*21yFvcn~f zr=V?TY}ItX_%LT~ZFGdTHEqn!%;8MvnlR|=;|I4S%MJutZP}S8Wkp0t9Y)KWuw+!s zw@pXdyg|(N@|UH7@5q#^5h(Y??MRnI$uU_$i-bspBuIb6M|osNa|B0iJQkf18HJG- zZ4nk#krX`<6D5%m4G|FakPh7t4aJZPtq=;8kO+Mc2W5~2O%Mb%kOCbL0R^Bx?jt_d zqddMNJEo&Kjw3jBqc&b6HAbT|E+aA)qcHv=FXo~x&LS-PfvR|lq!@~xxXJcoB}(EW zGGZbc;vfQIAL`*9(qSCB;Toc08H(W-a$y!);S@q)6Dr{m5=~>!=n(E84%VOyz90+p zL=zlgC$U4+uvnM^MxX;X!)UMo1w;U)m^@==<_w%^Giv6{keM)#!!+IakiCw-&Ho-u zUOA}vj6K^5bpCOCqtPj~SUsdH3;y}cVm?sRn3W!(lAMMu7q_%O2u!#03(4Ej(^2#1 zrE#~LFF$zo7thS{p{og1bJM@usns5S=l1j4GiE#MzX|#0P|Qn~wpW^YOKX+Zy7YPb zV_sJ*;VqX+{GDf5x;@#Vj+&C4|Qmwr{|Y{{y%n7cGp uo!6=-@}u(grW3{=EBj8m8ywyJ-`V|GlXmNDR$So+DqibTte*Bhp7$3Pw7^mT literal 0 HcmV?d00001 diff --git a/assets/obstacle object/mine.png b/assets/obstacle object/mine.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfeca5d53b68b88178ea36fe7ab98d282b7454d GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^20$#q!3HGv{H?nKq!^2X+?^QKos)S9p4; void: + $Area2D.remove_from_group("harmful") + $Sprite/AnimationPlayer.play("locked") + + +func _on_Area2D_area_exited(area: Area2D) -> void: + $Timer.start() + + +func _on_Timer_timeout() -> void: + is_locked = true + $Area2D.add_to_group("harmful") + $Sprite/AnimationPlayer.play("unlocked") diff --git a/src/ObstacleObjects/Mine.tscn b/src/ObstacleObjects/Mine.tscn new file mode 100644 index 0000000..7ca451d --- /dev/null +++ b/src/ObstacleObjects/Mine.tscn @@ -0,0 +1,117 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://assets/obstacle object/mine.png" type="Texture" id=1] +[ext_resource path="res://src/ObstacleObjects/Mine.gd" type="Script" id=2] + +[sub_resource type="Animation" id=2] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 4.0 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "locked" +length = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 4.0 ] +} + +[sub_resource type="Animation" id=6] +resource_name = "unlocked" +length = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 1 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../Area2D/CollisionShape2D:shape:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 7.0 ] +} + +[sub_resource type="CircleShape2D" id=7] +resource_local_to_scene = true +radius = 4.0 + +[node name="Mine" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -0.5 ) +texture = ExtResource( 1 ) +hframes = 2 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite"] +anims/RESET = SubResource( 2 ) +anims/locked = SubResource( 3 ) +anims/unlocked = SubResource( 6 ) + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 64 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource( 7 ) + +[node name="Timer" type="Timer" parent="."] +wait_time = 0.1 +one_shot = true + +[connection signal="area_exited" from="Area2D" to="." method="_on_Area2D_area_exited"] +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]