首先,必须确保 AnimatedSprite2D 是要使用的正确节点。我正在制作一款随机点击游戏,您只需单击一个按钮,就有机会获得不同的物品。我需要某些物品比其他物品更稀有,并且需要精灵来显示您获得的物品,而且还能够发送该物品的稀有度、名称等信息。
现在我正在考虑在一个动画精灵上添加一堆单帧动画,然后使用动画的名称来查找元数据。
如果 AnimatedSprite2D 是正确的选择,那么脚本会是什么样子?
我不确定哪个节点更适合您的情况,因此我正在为
AnimatedSprite2D
和 AnimationPlayer
编写解决方案,以防您将来的偏好发生变化
@onready var animated_sprite_2d:AnimatedSprite2D = $AnimatedSprite2D
func play_random_animation():
var animation_names := animated_sprite_2d.sprite_frames.get_animation_names()
if(!len(animation_names)):
return
var random_ani_name = animation_names[randi() % animation_names.size()]
animated_sprite_2d.play(random_ani_name)
@onready var animation_player:AnimationPlayer = $AnimationPlayer
func play_random_animation():
var animation_names := animation_player.get_animation_list()
if(!len(animation_names)):
return
var random_ani_name = animation_names[randi() % animation_names.size()]
animation_player.play(random_ani_name)
randomize()
以获得真正的随机性。
以下是所使用的类的相关文档链接: