Fix collider and add waves

This commit is contained in:
DerTyp7
2023-09-20 16:45:48 +02:00
parent 12cf356951
commit 1eaae06040
7 changed files with 99 additions and 14 deletions

View File

@@ -9,5 +9,15 @@ func _ready():
destroy_timer.start()
destroy_timer.connect("timeout", _on_destroy_timer_timeout)
func _on_destroy_timer_timeout():
queue_free()
#func _on_body_entered(body):
# print("---------------")
# print(body.name)
# if "Bullet" not in body.name:
# queue_free()

View File

@@ -1,13 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://day7or3kp8x5u"]
[gd_scene load_steps=5 format=3 uid="uid://day7or3kp8x5u"]
[ext_resource type="Script" path="res://Bullet.gd" id="1_0l6ar"]
[ext_resource type="Texture2D" uid="uid://dafsi3dqavgnb" path="res://Untitled.png" id="1_cjg2r"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_suj8m"]
size = Vector2(8, 8)
size = Vector2(4, 4)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_uncb7"]
size = Vector2(6, 6)
[node name="Bullet" type="RigidBody2D"]
gravity_scale = 0.0
continuous_cd = 1
script = ExtResource("1_0l6ar")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
@@ -17,3 +21,10 @@ shape = SubResource("RectangleShape2D_suj8m")
position = Vector2(-2.38419e-07, -2.38419e-07)
scale = Vector2(0.4, 0.4)
texture = ExtResource("1_cjg2r")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("RectangleShape2D_uncb7")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@@ -4,6 +4,7 @@ var speed: float = 100.0
var motion: Vector2 = Vector2.ZERO
func _ready():
set_meta("dead", false)
pass
func _physics_process(delta):
@@ -11,12 +12,22 @@ func _physics_process(delta):
var direction = (player.position - position).normalized()
motion = direction * speed
look_at(player.position)
move_and_collide(motion * delta)
func _on_area_2d_body_entered(body):
#func _on_area_2d_body_entered(body):
# print("Bullet hit")
# print(body.name)
# if "Bullet" in body.name:
# set_meta("dead", true)
# queue_free()
func _on_area_2d_area_entered(area):
print("Bullet hit")
print(body.name)
if "Bullet" in body.name:
print(area.get_parent().name)
if "Bullet" in area.get_parent().name:
set_meta("dead", true)
area.get_parent().queue_free()
queue_free()

View File

@@ -11,6 +11,7 @@ size = Vector2(0.203555, 2.52986)
[node name="Enemy" type="CharacterBody2D"]
script = ExtResource("1_cnaxx")
metadata/dead = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_aukek")
@@ -22,9 +23,9 @@ texture = ExtResource("1_026jc")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(-2.38419e-07, 0)
position = Vector2(1.19209e-07, 5.96046e-08)
rotation = -3.14159
scale = Vector2(58.952, -4.74335)
shape = SubResource("RectangleShape2D_53hbt")
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"]

44
EnemySpawner.gd Normal file
View File

@@ -0,0 +1,44 @@
extends Node
var Enemy = preload("res://Enemy.tscn")
var wave = 0;
var enemyList = []
var spawnpoints = [[20, 80], [50, 120],[90, 170],[500, 50]]
func _ready():
nextWave()
pass # Replace with function body.
func _process(delta):
var i = 0
for enemy in enemyList:
if not enemy || enemy.get_meta("dead") == true:
enemyList.remove_at(i)
i = i + 1;
if len(enemyList) == 0:
nextWave()
func spawnEnemies(count):
var i = 0;
while i < count:
print("spawn enemy")
var enemyInstance = Enemy.instantiate()
enemyInstance.name = "Enemy" + str(randf())
enemyInstance.position = Vector2(spawnpoints.pick_random()[0] + i, spawnpoints.pick_random()[1] + i)
get_parent().call_deferred("add_child", enemyInstance)
enemyList.append(enemyInstance)
i = i+1;
func startWave():
print("start wave")
if wave == 0:
spawnEnemies(1)
else:
spawnEnemies(wave * 3)
func nextWave():
wave = wave+1;
startWave()

6
Enemy_spawner.tscn Normal file
View File

@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://drc844kmvl3xa"]
[ext_resource type="Script" path="res://EnemySpawner.gd" id="1_d3ir5"]
[node name="EnemySpawner" type="Node"]
script = ExtResource("1_d3ir5")

View File

@@ -2,18 +2,23 @@
[ext_resource type="Script" path="res://Player.gd" id="1_6ke6x"]
[ext_resource type="Texture2D" uid="uid://dafsi3dqavgnb" path="res://Untitled.png" id="2_w1il1"]
[ext_resource type="PackedScene" uid="uid://dkbgu7ghl048y" path="res://Enemy.tscn" id="3_geuud"]
[ext_resource type="PackedScene" uid="uid://drc844kmvl3xa" path="res://Enemy_spawner.tscn" id="4_vhwqp"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fs1q0"]
size = Vector2(10, 10)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tqqca"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_my1x2"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1cb75"]
size = Vector2(14, 14)
[node name="World" type="Node2D"]
[node name="Camera2D" type="Camera2D" parent="."]
zoom = Vector2(1.5, 1.5)
[node name="EnemySpawner" parent="." instance=ExtResource("4_vhwqp")]
[node name="Player" type="CharacterBody2D" parent="."]
script = ExtResource("1_6ke6x")
@@ -33,9 +38,6 @@ offset = Vector2(45.275, 0)
[node name="Area2D" type="Area2D" parent="Player"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Area2D"]
shape = SubResource("RectangleShape2D_my1x2")
[node name="Enemy" parent="." instance=ExtResource("3_geuud")]
position = Vector2(246, 135)
shape = SubResource("RectangleShape2D_1cb75")
[connection signal="body_entered" from="Player/Area2D" to="Player" method="_on_area_2d_body_entered"]