Fixed some bugs
This commit is contained in:
@@ -29,19 +29,20 @@ func get_damage_to(body: Node2D) -> AbstractDamage:
|
|||||||
func _get_distance_to(body: Node2D) -> float:
|
func _get_distance_to(body: Node2D) -> float:
|
||||||
if not shape: return INF
|
if not shape: return INF
|
||||||
|
|
||||||
|
var space_state := get_world_2d().direct_space_state
|
||||||
|
var query := PhysicsShapeQueryParameters2D.new()
|
||||||
|
var circle_shape := CircleShape2D.new()
|
||||||
|
query.shape = circle_shape
|
||||||
|
query.transform = Transform2D(0, global_position)
|
||||||
|
query.collide_with_areas = false
|
||||||
|
query.collide_with_bodies = true
|
||||||
|
query.collision_mask = collision_mask
|
||||||
|
query.exclude = [self]
|
||||||
|
|
||||||
#TODO optimize by binary search
|
#TODO optimize by binary search
|
||||||
for radius in range(shape.radius + 1):
|
for radius in range(shape.radius + 1):
|
||||||
var query := PhysicsShapeQueryParameters2D.new()
|
|
||||||
var circle_shape := CircleShape2D.new()
|
|
||||||
circle_shape.radius = radius
|
circle_shape.radius = radius
|
||||||
query.shape = circle_shape
|
|
||||||
query.transform = Transform2D(0, global_position)
|
|
||||||
query.collide_with_areas = false
|
|
||||||
query.collide_with_bodies = true
|
|
||||||
query.collision_mask = collision_mask
|
|
||||||
query.exclude = [self]
|
|
||||||
|
|
||||||
var space_state := get_world_2d().direct_space_state
|
|
||||||
var results := space_state.intersect_shape(query)
|
var results := space_state.intersect_shape(query)
|
||||||
|
|
||||||
for result in results:
|
for result in results:
|
||||||
|
|||||||
@@ -21,3 +21,5 @@ shape = SubResource("CircleShape2D_xxtvk")
|
|||||||
|
|
||||||
[node name="HeathBar" parent="." node_paths=PackedStringArray("health") instance=ExtResource("3_l62e5")]
|
[node name="HeathBar" parent="." node_paths=PackedStringArray("health") instance=ExtResource("3_l62e5")]
|
||||||
health = NodePath("../Health")
|
health = NodePath("../Health")
|
||||||
|
|
||||||
|
[connection signal="depleted" from="Health" to="." method="_on_health_depleted"]
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ script = ExtResource("2_fwvrd")
|
|||||||
|
|
||||||
[node name="EnemyController" parent="." index="4" instance=ExtResource("3_l8c0n")]
|
[node name="EnemyController" parent="." index="4" instance=ExtResource("3_l8c0n")]
|
||||||
|
|
||||||
[connection signal="depleted" from="Health" to="." method="_on_health_depleted"]
|
|
||||||
[connection signal="accelerate" from="EnemyController" to="." method="accelerate"]
|
[connection signal="accelerate" from="EnemyController" to="." method="accelerate"]
|
||||||
[connection signal="reload" from="EnemyController" to="." method="reload"]
|
[connection signal="reload" from="EnemyController" to="." method="reload"]
|
||||||
[connection signal="shoot" from="EnemyController" to="." method="shoot"]
|
[connection signal="shoot" from="EnemyController" to="." method="shoot"]
|
||||||
|
|||||||
@@ -27,5 +27,6 @@ shape = SubResource("CapsuleShape2D_cuapu")
|
|||||||
[node name="Health" parent="." index="2"]
|
[node name="Health" parent="." index="2"]
|
||||||
max_hull = 200
|
max_hull = 200
|
||||||
|
|
||||||
[node name="HeathBar" parent="." index="4"]
|
[node name="HeathBar" parent="." index="3"]
|
||||||
position = Vector2(0, 30)
|
offset_top = 30.0
|
||||||
|
offset_bottom = 30.0
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ shape = SubResource("CapsuleShape2D_4jmkv")
|
|||||||
[node name="Health" parent="." index="2"]
|
[node name="Health" parent="." index="2"]
|
||||||
max_hull = 100
|
max_hull = 100
|
||||||
|
|
||||||
[node name="HeathBar" parent="." index="4"]
|
[node name="HeathBar" parent="." index="3"]
|
||||||
offset_top = 30.0
|
offset_top = 30.0
|
||||||
offset_bottom = 30.0
|
offset_bottom = 30.0
|
||||||
|
|
||||||
[connection signal="depleted" from="Health" to="." method="_on_health_depleted"]
|
|
||||||
|
|||||||
@@ -26,5 +26,6 @@ shape = SubResource("CapsuleShape2D_lopve")
|
|||||||
[node name="Health" parent="." index="2"]
|
[node name="Health" parent="." index="2"]
|
||||||
max_hull = 50
|
max_hull = 50
|
||||||
|
|
||||||
[node name="HeathBar" parent="." index="4"]
|
[node name="HeathBar" parent="." index="3"]
|
||||||
position = Vector2(0, 14)
|
offset_top = 14.0
|
||||||
|
offset_bottom = 14.0
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ offset_bottom = 22.0
|
|||||||
|
|
||||||
[node name="PlayerController" parent="." index="4" instance=ExtResource("3_4mjo1")]
|
[node name="PlayerController" parent="." index="4" instance=ExtResource("3_4mjo1")]
|
||||||
|
|
||||||
[connection signal="depleted" from="Health" to="." method="_on_health_depleted"]
|
|
||||||
[connection signal="accelerate" from="PlayerController" to="." method="accelerate"]
|
[connection signal="accelerate" from="PlayerController" to="." method="accelerate"]
|
||||||
[connection signal="reload" from="PlayerController" to="." method="reload"]
|
[connection signal="reload" from="PlayerController" to="." method="reload"]
|
||||||
[connection signal="shoot" from="PlayerController" to="." method="shoot"]
|
[connection signal="shoot" from="PlayerController" to="." method="shoot"]
|
||||||
|
|||||||
+2
-2
@@ -17,7 +17,7 @@ func _create_player() -> void:
|
|||||||
var player : PlayerShip = PLAYER.instantiate()
|
var player : PlayerShip = PLAYER.instantiate()
|
||||||
add_child(player)
|
add_child(player)
|
||||||
player.position = Vector2(100, 100)
|
player.position = Vector2(100, 100)
|
||||||
player.destroyed.connect(_create_player)
|
player.destroyed.connect(_create_player, CONNECT_DEFERRED)
|
||||||
|
|
||||||
|
|
||||||
func _create_random_enemy() -> void:
|
func _create_random_enemy() -> void:
|
||||||
@@ -26,4 +26,4 @@ func _create_random_enemy() -> void:
|
|||||||
var enemy : AbstractEnemyShip = ENEMIES.pick_random().instantiate()
|
var enemy : AbstractEnemyShip = ENEMIES.pick_random().instantiate()
|
||||||
add_child(enemy)
|
add_child(enemy)
|
||||||
enemy.position = Vector2(550, 180)
|
enemy.position = Vector2(550, 180)
|
||||||
enemy.destroyed.connect(_create_random_enemy)
|
enemy.destroyed.connect(_create_random_enemy, CONNECT_DEFERRED)
|
||||||
|
|||||||
Reference in New Issue
Block a user