fuzzyworld

godot-shooter / commit

Changed the main font and added a check to ensure that new items are not added too close to other items in World's Environment.

0d392ff8a7131a03e4438d6de6f2840445c72777 · Pavel Safronov · 2023-11-10 10:22:37 -0800 · parents 384e45ed4c4a

Changed the main font and added a check to ensure that new items are not added too close to other items in World's Environment.
 CharacterTheme.tres          |   2 +-
 Enemy.tscn                   |   7 -------
 Player.tscn                  |   2 +-
 Theme.tres                   |   6 +++---
 World.gd                     |  33 +++++++++++++++++++++++++--------
 assets/neuropolitical rg.otf | Bin 0 -> 66036 bytes
 6 files changed, 30 insertions(+), 20 deletions(-)

diff --git a/CharacterTheme.tres b/CharacterTheme.tres
index 52dfe6b..e0cd380 100644
--- a/CharacterTheme.tres
+++ b/CharacterTheme.tres
@@ -1,6 +1,6 @@
 [gd_resource type="Theme" load_steps=3 format=2]
 
-[ext_resource path="res://assets/Unique.ttf" type="DynamicFontData" id=1]
+[ext_resource path="res://assets/neuropolitical rg.otf" type="DynamicFontData" id=1]
 
 [sub_resource type="DynamicFont" id=1]
 size = 30
diff --git a/Enemy.tscn b/Enemy.tscn
index efba735..d969ad2 100644
--- a/Enemy.tscn
+++ b/Enemy.tscn
@@ -132,10 +132,3 @@ cast_to = Vector2( 0, -50 )
 
 [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 )
-
-[node name="Area2D" type="Area2D" parent="."]
-
-[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="Area2D"]
-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 )
-
-[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]
diff --git a/Player.tscn b/Player.tscn
index 3da4bfe..6465b31 100644
--- a/Player.tscn
+++ b/Player.tscn
@@ -173,7 +173,7 @@ shape = SubResource( 7 )
 
 [node name="Alive" type="Node2D" parent="Graphics"]
 
-[node name="Line2D" type="Line2D" parent="Graphics/Alive"]
+[node name="LaserBeam" type="Line2D" parent="Graphics/Alive"]
 points = PoolVector2Array( 0, 0, 0, -300 )
 width = 2.0
 default_color = Color( 1, 0, 0, 1 )
diff --git a/Theme.tres b/Theme.tres
index fdf2be2..8489d73 100644
--- a/Theme.tres
+++ b/Theme.tres
@@ -1,11 +1,11 @@
 [gd_resource type="Theme" load_steps=3 format=2]
 
-[ext_resource path="res://assets/Unique.ttf" type="DynamicFontData" id=1]
+[ext_resource path="res://assets/neuropolitical rg.otf" type="DynamicFontData" id=1]
 
 [sub_resource type="DynamicFont" id=1]
 size = 48
-outline_size = 2
-outline_color = Color( 0, 0, 0, 1 )
+outline_size = 3
+outline_color = Color( 0, 0.262745, 1, 1 )
 use_mipmaps = true
 use_filter = true
 font_data = ExtResource( 1 )
diff --git a/World.gd b/World.gd
index 9e270d1..f69791e 100644
--- a/World.gd
+++ b/World.gd
@@ -38,13 +38,12 @@ func weapon_consumed():
 	
 func create_enemy() -> Enemy:
 	var enemy = Enemy.instance()
-	enemy.position = get_new_item_pos()
+	enemy.position = get_new_environment_position()
 	enemy.connect("enemy_killed", self, "enemy_killed")
 	return enemy
-
 func create_health() -> PowerUp:
 	var health = PowerUp.instance()
-	health.position = get_new_item_pos(randf() + .5)
+	health.position = get_new_environment_position(randf() + .5)
 	health.connect("consumed", self, "health_consumed")
 	health.label = "+HP"
 	health.color = Color.green
@@ -58,17 +57,16 @@ func create_shield() -> PowerUp:
 	shield.color = Color.blue
 	return shield
 
-func create_gold(pos: Vector2 = get_new_item_pos(1 + randf())) -> PowerUp:
+func create_gold(pos: Vector2 = get_new_environment_position(1 + randf())) -> PowerUp:
 	var gold = PowerUp.instance()
 	gold.position = pos
 	gold.connect("consumed", self, "gold_consumed")
 	gold.label = ""
 	gold.color = Color.gold
 	return gold
-
 func create_weapon() -> PowerUp:
 	var weapon = PowerUp.instance()
-	weapon.position = get_new_item_pos(randf() + .5)
+	weapon.position = get_new_environment_position(randf() + .5)
 	weapon.connect("consumed", self, "weapon_consumed")
 	weapon.label = "WPN"
 	weapon.color = Color.red
@@ -87,6 +85,25 @@ func get_new_item_pos(dist_ratio: float = 1.0) -> Vector2:
 	var pos = unit_vector * enemy_spawn_dist + $Player.global_position
 	return pos
 
+func get_new_environment_position(dist_ratio: float = 1.0) -> Vector2:
+	var potential_pos: Vector2
+	while true:
+		# find the positions of the closest Environment items
+		var items = $Environment.get_children()
+		potential_pos = get_new_item_pos(dist_ratio)
+		var closest_pos = 10000
+		for i in items:
+			var item: Node2D = i
+			var pos = item.global_position
+			var dist = potential_pos.distance_to(pos)
+			if dist < closest_pos:
+				closest_pos = dist
+		var is_too_close = closest_pos < 50
+		var found_one = !is_too_close
+		if found_one:
+			break
+	return potential_pos
+
 func _input(event: InputEvent) -> void:
 	if $Player.dead:
 		return
@@ -115,7 +132,7 @@ func _process(_delta: float) -> void:
 
 	for g in generators:
 		var generator = g
-		var _is_done = generator.run(self)
+		var _is_done = generator.run($Environment)
 
 	if is_destination_set:
 		$Player.turn_towards(destination)
@@ -132,7 +149,7 @@ func _process(_delta: float) -> void:
 		var dist = diff.length()
 		var is_too_far = dist > item_replacement_distance
 		if is_too_far:
-			var new_pos = get_new_item_pos(1 + randf())
+			var new_pos = get_new_environment_position(1 + randf())
 			Utils.log("moving distant enemy from", enemy.position, "to", new_pos)
 			enemy.teleport(new_pos)
 
diff --git a/assets/neuropolitical rg.otf b/assets/neuropolitical rg.otf
new file mode 100644
index 0000000..e9e8007
Binary files /dev/null and b/assets/neuropolitical rg.otf differ