我是Python新手,想知道如何在按下某个键时将图像更改为另一个图像。我想改变我的形象盖尤.gif到盖登.gif当我按箭头键的时候看起来像是我的人。我用Python编写的代码如下:
from tkinter import *
tk = Tk()
tk.title("Triangle Movement")
tk.resizable(0, 0)
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
tk.update()
guyup = PhotoImage(file = 'GuyUp.gif')
canvas.create_image(5, 5, image = guyup, anchor = NW)
def movetriangle(event):
if event.keysym == 'Up':
canvas.move(1, 0, -4)
elif event.keysym == 'Down':
canvas.move(1, 0, 4)
elif event.keysym == 'Left':
canvas.move(1, -4, 0)
elif event.keysym == 'Right':
canvas.move(1, 4, 0)
elif event.keysym == 'w':
canvas.move(2, 0, -4)
elif event.keysym == 's':
canvas.move(2, 0, 4)
elif event.keysym == 'a':
canvas.move(2, -4, 0)
else:
canvas.move(2, 4, 0)
canvas.bind_all('<KeyPress-Up>', movetriangle)
canvas.bind_all('<KeyPress-Down>', movetriangle)
canvas.bind_all('<KeyPress-Left>', movetriangle)
canvas.bind_all('<KeyPress-Right>', movetriangle)
canvas.bind_all('<KeyPress-w>', movetriangle)
canvas.bind_all('<KeyPress-s>', movetriangle)
canvas.bind_all('<KeyPress-a>', movetriangle)
canvas.bind_all('<KeyPress-d>', movetriangle)
我有这两张图片,我想把它放在我的elif语句中,关键字是'Down' 谢谢你的帮助!在
首先要说明的是:您已经以不同的方式绑定了所有的按键,那么为什么要在回调中使用所有的条件呢?只需定义单独的
moveup
、movedown
等函数,并将它们绑定到适当的按键。在现在,对于图像切换,您需要在应用程序中使用状态来知道显示哪个图像,而不显示哪个图像。由于您使用的是全局变量而没有类,因此您还必须将这些信息存储在全局变量中。更改代码的以下部分:
并添加以下函数
^{pr2}$现在您可以将此函数放在程序逻辑的任何位置。在
在这种情况下,用一个全局函数来代替这个例子,你应该把它写成一个更好的例子。)
编辑:修复了
create_image
方法中缺少的关键字。在我还意识到您必须更改您的}作为标识符。也许存储它的更好方法是在对象本身上使用标记。在
canvas.move
调用,以使用image_id
而不是{相关问题 更多 >
编程相关推荐