Godot3で分裂する弾
発射後、しばらくしてから分裂する弾を実装する
割と簡単で、分裂するまでの時間を管理する Timer を追加し、timeout 検知で分裂弾を発生させて自分自身は queue_free()する
code:gd
extends EnemyBulletBase
onready var divide_timer = $DivideTimer
onready var use_bullet = preload("res://Scenes/Bullets/E_Bullet_red_6x6.tscn")
export(int) var divide_time = 4
export(int) var divide_num = 16
export(int) var divide_bullet_speed = 40
export(int) var rotate_speed = 10
func _ready():
divide_timer.wait_time = divide_time
divide_timer.start()
func _on_DivideTimer_timeout():
# 一定時間で小さい弾に分裂する
AudioManager.play_se(AudioManager.SEType.SE_DIVIDE_BULLET)
for i in divide_num + 1:
var bullet = use_bullet.instance()
_add_bullet_to_root(bullet)
bullet.speed = divide_bullet_speed
bullet.dir = Vector2(1,0).rotated((PI * 2/ divide_num) * i)
queue_free()
https://gyazo.com/351b068fe40bb301d4dc1301fa048504