[08]エネミーをランダムに出現させる

2Dシューティング

メインシーンにNode2D、Timerを追加してエネミーをランダムに出現させる

Timerは1.5秒。

エネミーは数種類、用意するのでランダムエネミーは配列にしてインスペクターにエネミーシーンをドラッグ

スクリプト
1.5秒タイムアウトごとにエネミーをX:40~480、Y:50に出現させる

extends Node2D

# ランダムエネミー
@export var enemies: Array[PackedScene] = []
@onready var enemy_node: Node2D = $EnemyNode
@onready var enemy_spawn_timer: Timer = $EnemySpawnTimer

func _ready() -> void:
	# マウスカーソルを消す
	Input.mouse_mode = Input.MOUSE_MODE_CAPTURED

func _process(delta: float) -> void:
	# ESCでマウスカーソルを出す
	if Input.is_action_just_pressed("ui_cancel"):
		Input.mouse_mode = Input.MOUSE_MODE_VISIBLE

func _on_enemy_spawn_timer_timeout() -> void:
	var enemy = enemies.pick_random().instantiate()
	enemy.global_position = Vector2(randf_range(40, 440) , 50)
	enemy_node.add_child(enemy)