3c6f31b503
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
34 lines
950 B
GDScript
34 lines
950 B
GDScript
class_name Explosion
|
|
extends Node2D
|
|
## 爆炸特效:双火球缩放淡出后自动回收。
|
|
|
|
const TEX := preload("res://assets/svg/explosion.svg")
|
|
|
|
var size := 1.0
|
|
|
|
var _core: Sprite2D
|
|
var _ring: Sprite2D
|
|
|
|
|
|
func _ready() -> void:
|
|
_core = Sprite2D.new()
|
|
_core.texture = TEX
|
|
_core.scale = Vector2(0.2, 0.2) * size
|
|
add_child(_core)
|
|
|
|
_ring = Sprite2D.new()
|
|
_ring.texture = TEX
|
|
_ring.scale = Vector2(0.55, 0.55) * size
|
|
_ring.modulate = Color(1.0, 0.55, 0.25, 0.9)
|
|
add_child(_ring)
|
|
|
|
var tween := create_tween()
|
|
tween.set_parallel(true)
|
|
tween.tween_property(_core, "scale", Vector2(1.5, 1.5) * size, 0.3) \
|
|
.set_trans(Tween.TRANS_CUBIC).set_ease(Tween.EASE_OUT)
|
|
tween.tween_property(_core, "modulate:a", 0.0, 0.38)
|
|
tween.tween_property(_ring, "scale", Vector2(2.6, 2.6) * size, 0.42) \
|
|
.set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
|
|
tween.tween_property(_ring, "modulate:a", 0.0, 0.42)
|
|
tween.chain().tween_callback(queue_free)
|