python 中的角色动画无法正常工作

Character Animation in python not working

我正忙于使用 tkinter、time 和 PIL 在 python 中制作游戏,我有一个角色,我想非常简单地制作动画,但是当我尝试这段代码时,它没有做任何事情然后跳到最后一张图,谁能告诉我这是为什么?

def move_char(event):
if event.keysym == "w":
    character = ch1
    c.delete(character)
    character = ch2_1
    c.create_image(725, 450, image = character)
    sleep(0.2)
    c.delete(character)
    character = ch2
    c.create_image(725, 450, image = character)
    sleep(0.2)
    c.delete(character)
    character = ch2_2
    c.create_image(725, 450, image = character)
    sleep(0.2)
    c.delete(character)
    character = ch2
    c.create_image(725, 450, image = character)

感谢任何帮助

由于character是对PhotoImage的引用,c.delete(character)不会如您所愿删除canvas中的图像。您可以使用 c.create_image(...)tag 选项来识别图像并使用 c.delete() 中的标签。另外为了看到动画效果,需要在c.create_image(...).

之后调用c.update()

下面是更新的move_char(...)

def move_char(event):
    if event.keysym == "w":
        # loop through the images
        for ch in (ch2_1, ch2, ch2_2, ch2):
            c.delete('char-image') # remove current image
            c.create_image(725, 450, image=ch, tag='char-image') # use tag to identify image
            c.update() # make the change effective
            sleep(0.2)