如何更改脚本中的精灵?

How do I change sprites in scripts?

我正在尝试制作一款约会模拟游戏,将其作为编程方面的第一款简单游戏。我不知道如何更改脚本中的角色精灵。

character_sprite.gd

extends Sprite

var char_tex = load("res://Sprites/Lu2.png") 

func _ready():
    set_texture(char_tex)

func _input(event):
    if event is InputEventMouseButton:
        char_tex = load("res://Sprites/Lu1.png")
        update()

只需将 texture 属性 设置为所需的纹理。您也可以 preload 纹理然后切换它们而不是再次加载它们。

extends Sprite

var char_tex = load("res://Sprites/Lu2.png") 

func _ready():
    set_process_input(true)
    texture = char_tex

func _input(event):
    if event is InputEventMouseButton:
        texture = load("res://Sprites/Lu1.png")

您的示例中的问题是您仅将新图像分配给 char_tex 变量,但这并没有改变精灵的纹理。在您使用 texture =set_texture 分配新图像之前,texture 仍会引用之前的图像。 Gdscript在这方面和Python比较相似,所以我推荐看看Ned Batchelder的演讲Facts and myths about Python names and Values.