Added enemy movement

This commit is contained in:
2025-11-24 23:30:57 +03:00
parent fb6b00be7c
commit b4529a407b
10 changed files with 71 additions and 25 deletions
-6
View File
@@ -75,12 +75,6 @@ func accelerate(direction: Vector2, delta: float) -> void:
velocity = velocity.normalized() * max_speed
func shoot(weapon_index: int) -> void:
if weapon_index >= _weapons.size(): return
_weapons[weapon_index].shoot(velocity)
func _get_new_speed(accel: float, decel: float, current_speed: float) -> float:
if is_zero_approx(accel):
if absf(current_speed) < decel:
@@ -2,7 +2,26 @@ class_name AbstractEnemyShip
extends AbstractShip
@onready var controller : EnemyController = $EnemyController
var is_on_screen : bool = false
func _ready() -> void:
super._ready()
for weapon in _weapons:
weapon.set_belonging(AbstractWeapon.Belonging.ENEMY)
func _on_enemy_controller_shoot() -> void:
for weapon in _weapons:
weapon.shoot(velocity)
func _on_visible_on_screen_notifier_2d_screen_entered() -> void:
is_on_screen = true
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
is_on_screen = false
@@ -9,8 +9,12 @@ collision_layer = 4
collision_mask = 2
script = ExtResource("2_fwvrd")
[node name="EnemyController" parent="." index="4" instance=ExtResource("3_l8c0n")]
[node name="EnemyController" parent="." index="4" node_paths=PackedStringArray("ship") instance=ExtResource("3_l8c0n")]
ship = NodePath("..")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="." index="5"]
[connection signal="accelerate" from="EnemyController" to="." method="accelerate"]
[connection signal="reload" from="EnemyController" to="." method="reload"]
[connection signal="shoot" from="EnemyController" to="." method="shoot"]
[connection signal="shoot" from="EnemyController" to="." method="_on_enemy_controller_shoot"]
[connection signal="screen_entered" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_entered"]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]
@@ -6,3 +6,9 @@ func _ready() -> void:
super._ready()
for weapon in _weapons:
weapon.set_belonging(AbstractWeapon.Belonging.PLAYER)
func _on_player_controller_shoot(weapon_index: int) -> void:
if weapon_index >= _weapons.size(): return
_weapons[weapon_index].shoot(velocity)
+1 -1
View File
@@ -38,4 +38,4 @@ offset_bottom = 22.0
[node name="PlayerController" parent="." index="4" instance=ExtResource("3_4mjo1")]
[connection signal="accelerate" from="PlayerController" to="." method="accelerate"]
[connection signal="shoot" from="PlayerController" to="." method="shoot"]
[connection signal="shoot" from="PlayerController" to="." method="_on_player_controller_shoot"]