try to make proper EnemiesUI

pull/17/head
Sascha 2024-08-27 11:29:38 +07:00
parent 833bf74dad
commit 4c55e9ce13
9 changed files with 93 additions and 55 deletions

@ -1,27 +1,28 @@
[gd_scene load_steps=3 format=3 uid="uid://bv0yhkf3bvbxi"]
[ext_resource type="Texture2D" uid="uid://chkly72g0pu8o" path="res://resources/images/viking-helmet.png" id="1_7x375"]
[ext_resource type="Script" path="res://scripts/enemies_ui.gd" id="1_atxm0"]
[ext_resource type="Script" path="res://scripts/enemy_ui.gd" id="1_kdsp7"]
[ext_resource type="Texture2D" uid="uid://vb6e6la8cj2g" path="res://resources/images/viking-helmet-small.png" id="2_qr4e4"]
[node name="Enemies_UI" type="Control"]
custom_minimum_size = Vector2(64, 128)
layout_mode = 3
anchors_preset = 0
size_flags_horizontal = 4
size_flags_vertical = 4
script = ExtResource("1_atxm0")
[node name="VBoxContainer" type="VBoxContainer"]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -101.0
offset_bottom = 137.0
grow_horizontal = 0
script = ExtResource("1_kdsp7")
[node name="CanvasGroup" type="CanvasGroup" parent="."]
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 2
texture = ExtResource("2_qr4e4")
expand_mode = 5
[node name="Sprite2D" type="Sprite2D" parent="CanvasGroup"]
position = Vector2(32, 32)
scale = Vector2(0.125, 0.125)
texture = ExtResource("1_7x375")
[node name="UnitName" type="Label" parent="."]
layout_mode = 2
theme_override_font_sizes/font_size = 10
text = "Unit_Name"
[node name="Label" type="Label" parent="CanvasGroup"]
offset_top = 64.0
offset_right = 64.0
offset_bottom = 113.0
text = "Godot
0, 0, 0"
horizontal_alignment = 1
[node name="UnitPosition" type="Label" parent="."]
layout_mode = 2
theme_override_font_sizes/font_size = 10
text = "Unit_Position (0, 0, 0)"

@ -24,6 +24,8 @@ buses/default_bus_layout="res://resources/bus_layout.tres"
GameManager="*res://scripts/game_manager.gd"
InteractionManager="*res://packed-scenes/interaction_manager.tscn"
EnemiesUi="*res://scripts/enemies_ui.gd"
SpawnManager="*res://scripts/spawn_manager.gd"
[display]

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://vb6e6la8cj2g"
path="res://.godot/imported/viking-helmet-small.png-623a7d087e037bcef3c8d1b0b3c45f8e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/images/viking-helmet-small.png"
dest_files=["res://.godot/imported/viking-helmet-small.png-623a7d087e037bcef3c8d1b0b3c45f8e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

@ -1,4 +1,4 @@
[gd_scene load_steps=21 format=3 uid="uid://b1i4juq2u7pwk"]
[gd_scene load_steps=22 format=3 uid="uid://b1i4juq2u7pwk"]
[ext_resource type="Environment" uid="uid://d31wkt76cft8k" path="res://resources/world_environment.tres" id="1_03qki"]
[ext_resource type="Script" path="res://scripts/game_manager.gd" id="1_kvi4c"]
@ -19,6 +19,7 @@
[ext_resource type="AudioStream" uid="uid://cw7nrvkf3iyvx" path="res://resources/voice/game_over.ogg" id="14_765i1"]
[ext_resource type="PackedScene" uid="uid://cv0cpierkxcw0" path="res://packed-scenes/knight_new.tscn" id="14_bpicj"]
[ext_resource type="Script" path="res://scripts/spawn_point.gd" id="15_y5174"]
[ext_resource type="Script" path="res://scripts/enemies_ui.gd" id="19_if315"]
[sub_resource type="NavigationMesh" id="NavigationMesh_3mbqm"]
vertices = PackedVector3Array(4.75, 1.4, -29, 5.5, 1.4, -29, 5.75, 1.4, -30, 4.5, 1.4, -30, 8, 1.4, -38, 2, 1.4, -38, 8, 1.4, -30, 2, 1.4, -30, 5.75, 1.4, -28, 4.5, 1.4, -28, 4.5, 1.4, -22, 5.75, 1.4, -22, 7.75, 1.4, -28, 7.75, 1.4, -22, 2.5, 1.4, -28, 2.5, 1.4, -22, -21.75, 1.4, -24, -21.25, 1.4, -22, -19.25, 1.4, -21.75, -18.5, 1.4, -24, -18, 1.4, -24.5, -18.25, 1.4, -22, -19.25, 1.4, -20.25, -18, 1.4, -28, -20, 1.4, -20, -20, 1.4, -14.75, -18, 1.4, -14.75, 27.5, 1.4, -22, 27.5, 1.4, -28, 30, 1.4, -21.5, 30, 1.4, -19.5, 36, 1.4, -19.5, 29.5, 1.4, -22, 36, 1.4, -28, -23.5, 5.4, -25, -23.25, 5.4, -24.25, -22.75, 5.4, -24.75, -22.25, 1.4, -23.25, -23.75, 1.4, -22.5, -23.75, 1.4, -23.25, -28.5, 1.4, -15.75, -30, 1.4, -16, -29.25, 1.4, -15.75, -24, 1.4, -22, -24, 1.4, -24, -30, 1.4, -24, -27.5, 1.4, -22, -28, 1.65, -15.75, -28, 1.4, -21.5, -25, 1.4, 0, -25, 1.4, -2, -27.5, 1.4, -2, -30, 1.4, 0, -29.25, 1.4, -14.25, -28.5, 1.4, -14.25, -28, 1.4, -2.5, -30, 1.4, -14, -28, 1.4, -14, 4.75, 1.4, -20.25, 4.75, 1.4, 0.25, 4.5, 1.4, 2, 5.75, 1.4, 2, 4.75, 1.4, -8.25, 4, 1.4, -8, 4, 1.4, 0, 4.75, 1.4, -9.75, 4, 1.4, -20, 4, 1.4, -10, -23.25, 5.4, -21.25, -22.5, 5.4, -21, -22.75, 5.4, -21.75, 2.75, 5.4, -21, 3, 5.4, -19.25, 3.5, 5.4, -20.75, 6.75, 5.4, -21, 7, 5.4, -19.25, 7.5, 5.4, -20.75, 30, 1.4, -10, 36, 1.4, -10, -27.75, 5.4, -15.25, -27, 5.4, -14.75, -27, 5.4, -15.5, -31, 5.4, -15.25, -31, 5.4, -14.5, -30.25, 5.4, -14.75, -19.5, 3.15, -13.75, -19.5, 3.15, -13.25, -18.5, 3.15, -13.25, -18.5, 3.15, -13.75, 6.25, 5.4, -9.25, 7, 5.4, -8.75, 7, 5.4, -9.5, 3, 5.4, -9.25, 3, 5.4, -8.5, 3.75, 5.4, -8.75, 30.75, 5.4, -9, 31, 5.4, -8.5, 35.25, 5.4, -8.75, 34, 1.4, -2.25, 35, 1.4, -2.5, 35, 1.4, -3.25, 34, 1.4, -3.5, 32, 1.4, -2.5, 31.5, 1.4, -2, 34, 1.4, 0, 26, 1.4, 2.5, 28, 1.4, 2.5, 28, 1.4, 0.5, 26, 1.4, -2, 34, 1.4, -7.75, 32.25, 1.4, -8, 28.5, 1.4, 0, 35.75, 1.4, -2.5, 36, 1.4, -3.5, 44.5, 1.65, -4.25, 44.5, 1.4, -6, 36, 1.4, -6, 36, 1.4, -2, 45.25, 1.4, -2, 45.5, 1.4, -4.25, 47.25, 1.4, -4.75, 48, 1.4, -4.25, 48, 1.4, -6, 45.5, 1.65, -6, 45.75, 1.4, -4.5, 46.5, 3.15, -3.5, 46.5, 3.15, -2.75, 47, 3.15, -3.25, -22, 1.4, 1.25, -20, 1.4, 1.25, -19.75, 1.4, -0.25, -22.5, 1.4, 0, -17.25, 1.4, -0.25, -14, 1.4, -2, -17, 1.4, 1.25, -14, 1.4, 1.25, -11.75, 1.4, 8.75, -12.75, 1.4, 9, -12.5, 1.4, 10, -12.5, 1.4, 2, -12.75, 1.4, 3.75, -11.75, 1.4, 4, 17.5, 1.4, 10, 18, 1.4, 10.75, 22, 1.4, 10.75, 22, 1.4, -2, 18, 1.4, 1.5, 17.5, 1.4, 2, 18, 1.4, -2, -11.5, 1.4, 7.25, 49, 5.4, -1, 49, 5.4, -1.5, 48.5, 5.4, -1, 47.25, 5.4, -0.75, 47.25, 5.4, -1.25, -19, 2.65, 0.75, -19, 2.65, 1.25, -18, 2.65, 1.25, -18, 2.65, 0.75, -15.5, 1.4, 8, -15.25, 1.4, 8.5, -14, 1.4, 8.25, -14, 1.4, 4, -13.5, 1.4, 2, -22, 1.4, 9, -20.5, 1.4, 9, -20.25, 1.4, 8, -19.75, 1.4, 2.25, -17.25, 1.4, 2.25, 25.5, 1.4, 18, 24, 1.4, 18, 24, 1.4, 20, 26, 1.4, 17.5, 28, 1.4, 20, -13.75, 1.4, 9, -15.5, 1.4, 10, -14, 1.4, 10.5, -14, 1.4, 14, -20.25, 1.4, 10, -22, 1.4, 14, 22.5, 1.4, 18, 22, 1.4, 17.5, 18, 1.4, 20, 23, 5.4, 16.5, 23, 5.4, 17, 23.75, 5.4, 17)
@ -41,12 +42,11 @@ size = Vector3(10000, 10000, 1000)
[node name="GameManager" type="Node" parent="."]
script = ExtResource("1_kvi4c")
[node name="SpawnManager" type="Node" parent="." node_paths=PackedStringArray("spawn_points", "enemies_folder", "enemies_ui_container")]
[node name="SpawnManager" type="Node" parent="." node_paths=PackedStringArray("spawn_points", "enemies_folder")]
script = ExtResource("4_2vmwg")
spawn_points = [NodePath("SpawnPoints/SpawnPoint1"), NodePath("SpawnPoints/SpawnPoint2"), NodePath("SpawnPoints/SpawnPoint3"), NodePath("SpawnPoints/SpawnPoint4")]
enemies_folder = NodePath("Enemies")
enemies = Array[PackedScene]([ExtResource("13_8a4e7")])
enemies_ui_container = NodePath("../CanvasGroup/Enemies_UI/EnemiesUIContainer")
enemies_ui = ExtResource("9_p6yn7")
[node name="SpawnPoints" type="Node" parent="SpawnManager"]
@ -177,27 +177,15 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -12.61
[node name="Enemies_UI" type="CanvasLayer" parent="CanvasGroup"]
[node name="EnemiesUIContainer" type="VBoxContainer" parent="CanvasGroup/Enemies_UI"]
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasGroup/Enemies_UI"]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -64.0
offset_left = -40.0
offset_bottom = 40.0
grow_horizontal = 0
size_flags_horizontal = 4
size_flags_vertical = 0
[node name="Enemies_UI" parent="CanvasGroup/Enemies_UI/EnemiesUIContainer" node_paths=PackedStringArray("spawn_manager") instance=ExtResource("9_p6yn7")]
layout_mode = 2
spawn_manager = NodePath("../../../../SpawnManager")
[node name="Enemies_UI2" parent="CanvasGroup/Enemies_UI/EnemiesUIContainer" node_paths=PackedStringArray("spawn_manager") instance=ExtResource("9_p6yn7")]
layout_mode = 2
spawn_manager = NodePath("../../../../SpawnManager")
[node name="Enemies_UI3" parent="CanvasGroup/Enemies_UI/EnemiesUIContainer" node_paths=PackedStringArray("spawn_manager") instance=ExtResource("9_p6yn7")]
layout_mode = 2
spawn_manager = NodePath("../../../../SpawnManager")
script = ExtResource("19_if315")
enemies_ui = ExtResource("9_p6yn7")
[node name="UI" type="CanvasLayer" parent="CanvasGroup"]

@ -1,12 +1,14 @@
class_name EnemiesUI extends Control
extends Control
@export var spawn_manager: SpawnManager
@onready var sprite_2d: Sprite2D = $CanvasGroup/Sprite2D
@onready var label: Label = $CanvasGroup/Label
@export var enemies_ui: PackedScene
func _ready() -> void:
spawn_manager.update_enemies_ui.connect(update_enemy_ui)
SpawnManager.update_enemies_ui.connect(update_enemies_ui)
func update_enemy_ui(enemy: Enemy) -> void:
label.text = enemy.unit_name + "\n" + str(enemy.position)
func update_enemies_ui(enemies: Array[Enemy]) -> void:
print("Update Enemy UI")
for enemy in enemies:
print("Add " + enemy.unit_name + "...")
var new_enemy_ui = enemies_ui.instantiate()
new_enemy_ui.update_ui(enemy)
new_enemy_ui.add_child(self)

@ -0,0 +1,9 @@
class_name enemy_ui extends VBoxContainer
@onready var texture_rect: TextureRect = $TextureRect
@onready var unit_name: Label = $UnitName
@onready var unit_position: Label = $UnitPosition
func update_ui(enemy: Enemy):
unit_name.text = enemy.unit_name
unit_position.text = str(enemy.enemy.position)

@ -3,7 +3,8 @@ extends Node
@onready var player : Player = get_tree().get_first_node_in_group("player")
func _ready() -> void:
print("Hallo Felix")
#print("Hallo Felix")
pass
func _on_game_over() -> void:
print("Game Over!")

@ -1,6 +1,6 @@
class_name SpawnManager extends Node
extends Node
@export var max_enemy := 1
@export var max_enemy := 3
@export var spawn_points: Array[SpawnPoint]
@export var enemies_folder: Node
@export var enemies: Array[PackedScene]
@ -9,13 +9,14 @@ class_name SpawnManager extends Node
@onready var player : Player = get_tree().get_first_node_in_group("player")
signal update_enemies_ui(enemy: Enemy)
signal update_enemies_ui(enemies: Array[Enemy])
var current_enemies: Array[Enemy]
var enemy_number := 0
func _ready() -> void:
enemy_count_changed()
if current_enemies.size() < max_enemy:
enemy_count_changed()
func enemy_count_changed() -> void:
print("Enough enemies? " + str(current_enemies.size()) + "/" + str(max_enemy))
@ -25,7 +26,7 @@ func enemy_count_changed() -> void:
print("No free SpawnPoints found!")
else:
spawn_new_enemy(empty_spawn_points.pick_random())
enemy_count_changed()
enemy_count_changed()
else:
print("Enough enimes!")
@ -41,8 +42,8 @@ func spawn_new_enemy(spawn_point: SpawnPoint) -> void:
enemies_folder.add_child(new_enemy)
spawn_point.isFull = true
spawn_point.enemy = new_enemy
update_enemies_ui.emit(new_enemy)
current_enemies.append(new_enemy)
update_enemies_ui.emit(current_enemies)
func find_empty_spawn_points(all_spawn_points: Array[SpawnPoint]) -> Array[SpawnPoint]:
var empty_spawn_points: Array[SpawnPoint]