godot-shooter / commit
Identify the currently-targeted enemy.
Enemy.gd | 2 ++ Enemy.tscn | 8 +++++++- World.gd | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Enemy.gd b/Enemy.gd index 4465dc2..8dd0993 100644 --- a/Enemy.gd +++ b/Enemy.gd @@ -10,6 +10,7 @@ const Smoke = preload("res://Smoke.tscn") export var move_speed = 25 export var health = -1 export var max_health = 10 +export var is_targeted = false signal enemy_killed var velocity = Vector2.ZERO @@ -27,6 +28,7 @@ func _ready() -> void: func _process(_delta: float) -> void: $Graphics/Alive/Container/HealthLabel.text = "%s / %s" % [health, max_health] $Graphics/Alive/Container.global_rotation = 0 + $Graphics/Alive/Target.visible = is_targeted func _physics_process(_delta: float) -> void: if dead: diff --git a/Enemy.tscn b/Enemy.tscn index 0681cae..bd729e6 100644 --- a/Enemy.tscn +++ b/Enemy.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://assets/kenney_simple-space/PNG/Default/enemy_A.png" type="Texture" id=1] [ext_resource path="res://Enemy.gd" type="Script" id=2] +[ext_resource path="res://assets/kenney_simple-space/PNG/Default/icon_plusLarge.png" type="Texture" id=3] [sub_resource type="Animation" id=1] length = 0.001 @@ -91,6 +92,11 @@ margin_right = 25.0 margin_bottom = 51.0 text = "HEALTH" +[node name="Target" type="Sprite" parent="Graphics/Alive"] +visible = false +modulate = Color( 1, 0, 0, 1 ) +texture = ExtResource( 3 ) + [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] polygon = PoolVector2Array( 0, -23, -7, 5, -12, 9, -19, 9, -23, 14, -23, 19, -19, 23, -14, 23, -9, 19, -9, 14, -10, 12, -6, 9, 0, 15, 6, 9, 10, 12, 9, 14, 9, 19, 13, 23, 18, 23, 23, 18, 23, 14, 19, 10, 13, 10, 7, 5 ) diff --git a/World.gd b/World.gd index e0ee32e..d775f99 100644 --- a/World.gd +++ b/World.gd @@ -70,7 +70,14 @@ func _on_ShootTimer_timeout() -> void: return var enemies = get_tree().get_nodes_in_group("enemies") if enemies.size() > 0: + Utils.log("enemies length", enemies.size()) enemies.sort_custom(self, "sort_enemies_ascending_distance") + for enemy in enemies: + var diff_to_player: Vector2 = enemy.position - $Player.position + var dist_to_player = diff_to_player.length() + Utils.log("enemy pos", enemy.position, "dist_to_player", dist_to_player) + enemy.is_targeted = false var closest_enemy: Enemy = enemies[0] $Player.shoot_at(closest_enemy.global_position) + closest_enemy.is_targeted = true