[06]エネミーのバレット
プレーヤーのバレットと同じくArea2DでSprite、Collisionを追加しLayerを指定

バレットのスクリプト
移動方向がプレイヤーと逆
extends Area2D
# 移動スピード
const move_speed = 200.0
var direction = 1
func _ready() -> void:
await get_tree().create_timer(3).timeout
queue_free()
func _physics_process(delta: float) -> void:
position.y += direction * move_speed * delta
エネミーにバレット発射を追加
extends CharacterBody2D
# 移動スピード
const move_speed = 30.0
var direction: Vector2
# バレット
var canShoot = true
const ENEMY_BULLET = preload("res://scenes/enemy_bullet.tscn")
@onready var marker_2d: Marker2D = $Marker2D
@onready var shoot_timer: Timer = $shootTimer
func _ready() -> void:
add_to_group("enemies")
func _physics_process(delta: float) -> void:
direction.y = 1
velocity = direction.normalized() * move_speed
position += velocity * delta
shoot()
move_and_slide()
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
print("outside")
queue_free()
func shoot():
if canShoot:
canShoot = false
shoot_timer.start()
var bullet = ENEMY_BULLET.instantiate()
bullet.set_position(marker_2d.global_position)
get_parent().add_child(bullet)
func _on_shoot_timer_timeout() -> void:
canShoot = true