我的程序不会工作。这个男人是要移动的,但我甚至无法正确地展示他。 请帮帮我,我的代码是......
from tkinter import *
import random
import time
class Paddle:
def __init__(self, canvas):
self.canvas = canvas
my_image = PhotoImage(file='C:\\Documents and Settings\\Patrick\\Desktop\\ most commonly used stuff\\game\\bob 1.GIF')
self.id = canvas.create_image(0, 0, image=my_image)
self.canvas.move(self.id, 200, 300)
self.x = 0
self.id.pack()
def left(self, evt):
print('Left')
self.x = -2
canvas.move(self.id, 10, 0)
def right(self, evt):
print('Right')
self.x = 2
canvas.move(self.id, -10, -0)
def up(self, evt):
self.x = 2
canvas.move(self.id, -0, -10)
def down(self, evt):
self.x = 2
canvas.move(self.id, -0, 10)
def draw(self):
self.canvas.move(self.id, self.x, 0)
pos = self.canvas.coords(self.id)
if pos[0] <= 0:
self.x = 0
elif pos [2] >= self.canvas_width:
self.x = 10
def easy():
paddle = Paddle(canvas,)
tk.bind("<KeyPress-Right>", paddle.left)
tk.bind("<KeyPress-Left>", paddle.right)
tk.bind("<KeyPress-a>", paddle.right)
tk.bind("<KeyPress-d>", paddle.left)
tk.bind("<KeyPress-Up>", paddle.up)
tk.bind("<KeyPress-Down>", paddle.down)
b2.destroy()
while 1:
tk.update_idletasks()
tk.update()
time.sleep(0.01)
def start():
b2.pack()
b.destroy()
tk = Tk()
tk.title("game")
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, bg="yellow", width=500, height=400)
canvas.pack()
tk.update
b = Button(tk, text="play", command=start)
b.pack()
b2 = Button(tk, text="easy", command=easy)
console = ['top','bottom','right','left','paddle']
我真的希望这个能够发挥作用,如果有人能解决这个问题,我真的很感激 感谢任何帮助过的人:)
答案 0 :(得分:0)
只需几行就无法修复代码。你有一个重大的结构性缺陷。
要使tkinter程序正常工作,您必须致电mainloop
。确实,可以在没有它的情况下使用tkinter,但仅限于非常特殊的用例,并且只有当你知道自己在做什么时才会这样。因此,您需要做的第一件事就是完全删除while 1
循环,然后调用mainloop
。不要从mainloop
致电easy
。相反,它通常被称为程序中的最后一行。