From d6e7dd9db3c707f5383bc69222266b22db0293f9 Mon Sep 17 00:00:00 2001 From: Jane Cho Date: Wed, 8 Dec 2021 03:05:02 -0600 Subject: [PATCH] Level 1 implemented Level 1 playable; more to be added --- Enemies/Chasing Glowing Ghost.tscn | 24 +++++++------ Enemies/Dark Matter.gd | 15 +++++++- Enemies/Dark Matter.tscn | 13 ++++++- Levels/Level 1.gd | 5 +-- Levels/Level 1.tscn | 58 +++++++++++++++++++++--------- Levels/Level 4.tscn | 4 +-- 6 files changed, 86 insertions(+), 33 deletions(-) diff --git a/Enemies/Chasing Glowing Ghost.tscn b/Enemies/Chasing Glowing Ghost.tscn index ef34429..6d70041 100644 --- a/Enemies/Chasing Glowing Ghost.tscn +++ b/Enemies/Chasing Glowing Ghost.tscn @@ -5,18 +5,20 @@ [ext_resource path="res://Sprites/Enemies/Chasing_Glowing_Ghost.png" type="Texture" id=3] [ext_resource path="res://Enemies/Chasing Glowing Ghost.gd" type="Script" id=4] -[sub_resource type="CapsuleShape2D" id=3] +[sub_resource type="CapsuleShape2D" id=1] radius = 1.5 height = 3.0 -[sub_resource type="CapsuleShape2D" id=1] +[sub_resource type="CapsuleShape2D" id=2] radius = 3.0 height = 2.0 -[sub_resource type="CircleShape2D" id=2] +[sub_resource type="CircleShape2D" id=3] radius = 50.0 -[node name="Chasing Glowing Ghost" type="KinematicBody2D" groups=["enemy"]] +[node name="Chasing Glowing Ghost" type="KinematicBody2D" groups=[ +"enemy", +]] light_mask = 0 collision_layer = 4 collision_mask = 5 @@ -32,9 +34,11 @@ offset = Vector2( 0, 0.5 ) visible = false light_mask = 0 rotation = 1.5708 -shape = SubResource( 3 ) +shape = SubResource( 1 ) -[node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox_1"]] +[node name="Hitbox" type="Area2D" parent="." groups=[ +"enemy_hitbox_1", +]] light_mask = 0 collision_layer = 4 collision_mask = 2 @@ -43,19 +47,19 @@ collision_mask = 2 visible = false light_mask = 0 position = Vector2( 0, -2.5 ) -shape = SubResource( 1 ) +shape = SubResource( 2 ) [node name="Player Detector" type="Area2D" parent="."] light_mask = 0 -collision_layer = 0 -collision_mask = 2 input_pickable = false monitorable = false +collision_layer = 0 +collision_mask = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="Player Detector"] visible = false light_mask = 0 -shape = SubResource( 2 ) +shape = SubResource( 3 ) [node name="Light" type="Light2D" parent="."] texture = ExtResource( 2 ) diff --git a/Enemies/Dark Matter.gd b/Enemies/Dark Matter.gd index 934bc59..1566f74 100644 --- a/Enemies/Dark Matter.gd +++ b/Enemies/Dark Matter.gd @@ -10,6 +10,7 @@ var position_tracker = 0.0 var player = null var obstacle = null var DisplayValue = 10 +var health: int = 2 # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. @@ -47,7 +48,7 @@ func _on_Player_detect_body_exited(_body): func _on_Star_detect_body_entered(body_star): #print("obstacle entered") #print(body_star.name)#Obstacle - if body_star.name == 'Star': + if 'Star' in body_star.name: obstacle = body_star timer.set_wait_time(DisplayValue) timer.start() @@ -63,3 +64,15 @@ func _on_Star_detect_body_exited(_body): func _on_Timer_timeout(): #print("time out") obstacle = null # Replace with function body. + + +func _on_Hitbox_area_entered(area: Area2D): + if obstacle: #when the enemy is vulnerable + if area.is_in_group('player_weapon_1'): + health -= 1 + elif area.is_in_group('player_weapon_2'): + health -= 2 + + if health <= 0: + call_deferred('queue_free') + return diff --git a/Enemies/Dark Matter.tscn b/Enemies/Dark Matter.tscn index d7ad6d0..b97f4ef 100644 --- a/Enemies/Dark Matter.tscn +++ b/Enemies/Dark Matter.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://Sprites/Enemies/DarkMatter_barrier.png" type="Texture" id=1] [ext_resource path="res://Enemies/Dark Matter.gd" type="Script" id=2] @@ -12,6 +12,9 @@ radius = 55.4916 [sub_resource type="RectangleShape2D" id=3] extents = Vector2( 5.48996, 5.06427 ) +[sub_resource type="RectangleShape2D" id=4] +extents = Vector2( 5.50204, 4.89798 ) + [node name="Dark Matter" type="KinematicBody2D"] collision_layer = 2 collision_mask = 6 @@ -39,8 +42,16 @@ shape = SubResource( 3 ) [node name="Timer" type="Timer" parent="."] +[node name="Hitbox" type="Area2D" parent="."] +collision_layer = 4 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +shape = SubResource( 4 ) + [connection signal="body_entered" from="Player_detect" to="." method="_on_Player_detect_body_entered"] [connection signal="body_exited" from="Player_detect" to="." method="_on_Player_detect_body_exited"] [connection signal="body_entered" from="Star_detect" to="." method="_on_Star_detect_body_entered"] [connection signal="body_exited" from="Star_detect" to="." method="_on_Star_detect_body_exited"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] +[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] diff --git a/Levels/Level 1.gd b/Levels/Level 1.gd index f7ff6cd..9263111 100644 --- a/Levels/Level 1.gd +++ b/Levels/Level 1.gd @@ -7,8 +7,9 @@ extends Node2D # Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. +func _ready() -> void: + $YSort/Player.load_hud($HUD) + return # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/Levels/Level 1.tscn b/Levels/Level 1.tscn index b9b3499..bcb87be 100644 --- a/Levels/Level 1.tscn +++ b/Levels/Level 1.tscn @@ -11,32 +11,56 @@ [node name="Space Level" type="Node2D"] script = ExtResource( 5 ) -[node name="Player" parent="." instance=ExtResource( 4 )] -position = Vector2( 178.673, 89.1493 ) - -[node name="Camera2D" type="Camera2D" parent="Player"] -current = true -limit_left = 0 -limit_top = 0 -limit_right = 640 -limit_bottom = 360 - [node name="TextureRect" type="TextureRect" parent="."] -margin_right = 40.0 -margin_bottom = 40.0 -rect_scale = Vector2( 4, 4 ) +margin_right = 160.0 +margin_bottom = 90.0 +rect_scale = Vector2( 2.5, 2.5 ) texture = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } -[node name="HUD" parent="." instance=ExtResource( 2 )] +[node name="YSort" type="YSort" parent="."] -[node name="Pause Screen" parent="." instance=ExtResource( 3 )] +[node name="Player" parent="YSort" instance=ExtResource( 4 )] +position = Vector2( 178.673, 89.1493 ) -[node name="Dark Matter" parent="." instance=ExtResource( 6 )] +[node name="Camera2D" type="Camera2D" parent="YSort/Player"] +current = true +limit_left = 0 +limit_top = 0 +limit_right = 400 +limit_bottom = 225 + +[node name="Enemies" type="YSort" parent="YSort"] + +[node name="Dark Matter" parent="YSort/Enemies" instance=ExtResource( 6 )] position = Vector2( 97.0154, 82.0323 ) collision_mask = 0 -[node name="Star" parent="." instance=ExtResource( 7 )] +[node name="Dark Matter2" parent="YSort/Enemies" instance=ExtResource( 6 )] +position = Vector2( 205.006, 50.8542 ) + +[node name="Dark Matter3" parent="YSort/Enemies" instance=ExtResource( 6 )] +position = Vector2( 321.547, 98.5301 ) + +[node name="Dark Matter4" parent="YSort/Enemies" instance=ExtResource( 6 )] +position = Vector2( 72.0435, 202.887 ) + +[node name="Dark Matter5" parent="YSort/Enemies" instance=ExtResource( 6 )] +position = Vector2( 289.233, 198.649 ) + +[node name="Stars" type="YSort" parent="YSort"] + +[node name="Star" parent="YSort/Stars" instance=ExtResource( 7 )] position = Vector2( 140.092, 133.724 ) + +[node name="Star2" parent="YSort/Stars" instance=ExtResource( 7 )] +position = Vector2( 278.639, 33.3731 ) + +[node name="Star3" parent="YSort/Stars" instance=ExtResource( 7 )] +position = Vector2( 323.666, 161.038 ) + +[node name="HUD" parent="." instance=ExtResource( 2 )] + +[node name="Pause Screen" parent="." instance=ExtResource( 3 )] diff --git a/Levels/Level 4.tscn b/Levels/Level 4.tscn index 823a2f0..507aa64 100644 --- a/Levels/Level 4.tscn +++ b/Levels/Level 4.tscn @@ -86,20 +86,20 @@ tile_data = PoolIntArray( -2359292, 0, 5, -2359291, 0, 196610, -2359290, 0, 1966 [node name="Fire3" type="AnimatedSprite" parent="."] position = Vector2( -607.628, -210.601 ) frames = SubResource( 1 ) -frame = 11 +frame = 4 playing = true offset = Vector2( 679.819, 333.222 ) [node name="Fire2" type="AnimatedSprite" parent="."] position = Vector2( -543.25, -212.563 ) frames = SubResource( 1 ) +frame = 7 playing = true offset = Vector2( 679.819, 333.222 ) [node name="Fire1" type="AnimatedSprite" parent="."] position = Vector2( -479.806, -214.167 ) frames = SubResource( 1 ) -frame = 7 playing = true offset = Vector2( 679.819, 333.222 )