1
tkinterで小さなグローホーキーゲームを作っていて、wall.Compilerが1つのキーイベントをキャッチし、2番目のユーザーがキーを押すと、1番目のユーザーの動きが止まります。あなたはこの問題をぶつける方法を知っていますか?ここTkinterで2つのキーイベントをキャッチする方法
はコードです: - PyGame
のような - 他のモジュールで
from tkinter import*
w=600
h=300
padis_sigane=10
padis_sigrdze=75
padis_sichqare=5
root=Tk()
root.geometry("{}x{}".format(w,h))
root.resizable(False,False)
c=Canvas(root,width=w,height=h,bg="green")
c.create_line(w//2,0,w//2,h,width=10,fill="white")
c.create_line(padis_sigane,0,padis_sigane,h,width=2,fill="white")
c.create_line(w-padis_sigane,0,w-padis_sigane,h,width=2,fill="white")
c.create_oval(w//2-w//30,h//2-w//30,w//2+w//30,h//2+w//30,fill="white",outline="white")
class chogani:
def __init__(self,x,y):
self.x=x
self.y=y
self.pad=c.create_rectangle(self.x,self.y,self.x+padis_sigane,self.y+padis_sigrdze,fill="lightblue",outline="white")
def shxuili(self):
if c.coords(self.pad)[3]>=h:
c.coords(self.pad,self.x,h-padis_sigrdze,self.x+padis_sigane,h)
elif c.coords(self.pad)[1]<=0:
c.coords(self.pad,self.x,0,self.x+padis_sigane,padis_sigrdze)
x=0;y=0 #Momavalshi
pad1=chogani(0,1)
pad2=chogani(w-padis_sigane,1)
def K(event):
pad1.shxuili()
pad2.shxuili()
if event.keysym=='w':
c.move(pad1.pad,0,-padis_sichqare)
elif event.keysym=='s':
c.move(pad1.pad,0,padis_sichqare)
elif event.keysym=='Up':
c.move(pad2.pad,0,-padis_sichqare)
elif event.keysym=='Down':
c.move(pad2.pad,0,padis_sichqare)
def R(event):
print("shen aushvi ", event.char)
root.bind("<KeyPress>",K)
root.bind("<KeyRelease>",R)
root.focus_set()
c.pack()
root.mainloop()