generated at
Godot3で出現後に一時停止してから動き出す弾
バババッと出現して停止し、一定時間たったら動き出す弾を実装する
py
export(int) var bullet_speed = 55 export(int) var bullet_num = 18 export(int) var stop_time = 3.5 onready var use_bullet = preload("res://Scenes/Bullets/E_Bullet_green_5x8.tscn") func _shoot(player): # 横に並べて停めて、一定時間後に動き出すタイプ var rand_x = rand_range(-32, 32) var rand_y = rand_range(0, 24) for i in bullet_num: var bullet1 = use_bullet.instance() bullet1.speed = bullet_speed bullet1.is_stop = true var timer := Timer.new() timer.connect("timeout", bullet1, "_on_stop_timer_timeout") timer.wait_time = stop_time timer.one_shot = true timer.autostart = true bullet1.add_child(timer) _add_bullet_to_root(bullet1) bullet1.position += Vector2(64 - 128 * (i + 1) / bullet_num + rand_x, 24 * sin(PI * (i + 1) / bullet_num) + rand_y) yield(get_tree().create_timer(.03), "timeout")
弾を生成後にストップフラグをONにして、Timer だけを追加しておく
弾クラスの方でストップフラグをチェックして動きを制御している
Timer の timeout signal 受信後に、ストップフラグを OFF にして動き出すようにしている