Tkinter Can';t从函数中调用多个项
我正在创建一个类似于atari游戏的游戏;杆位。我想弄清楚,每次有人越过起跑线时,如何让随机的车出现。我打电话给不止一辆随机的车有困难。我没有收到任何错误消息。下面是我的代码。(如果你对如何让赛车出现在赛道上有什么建议,那也会很有帮助)我是一个编程新手,现在仍在努力解决这个问题。谢谢你的建议Tkinter Can';t从函数中调用多个项,tkinter,python-3.5,Tkinter,Python 3.5,我正在创建一个类似于atari游戏的游戏;杆位。我想弄清楚,每次有人越过起跑线时,如何让随机的车出现。我打电话给不止一辆随机的车有困难。我没有收到任何错误消息。下面是我的代码。(如果你对如何让赛车出现在赛道上有什么建议,那也会很有帮助)我是一个编程新手,现在仍在努力解决这个问题。谢谢你的建议 import random import time class Game: def __init__(self): self.tk = Tk() se
import random
import time
class Game:
def __init__(self):
self.tk = Tk()
self.tk.title("Car Game")
self.tk.resizable(0, 0)
self.tk.wm_attributes("-topmost", 1)
self.canvas = Canvas(self.tk, width=1280, height=750, bd=0, highlightthickness=0)
self.canvas.pack()
self.tk.update()
self.bg = PhotoImage(file="road.gif")
self.canvas.create_image(0, 0, image=self.bg, anchor='nw')
def your_car_sprite(self):
self.yourCar = PhotoImage(file="carForgame.gif")
self.canvas.create_image(850,570,image=self.yourCar, anchor='nw')
def random_cars_sprite(self):
x = random.randint(0,1280)
y = random.randint(0,750)
self.randomCar = PhotoImage(file='Car2.gif')
self.canvas.create_image(x, y, image=self.randomCar, anchor='nw')
for i in range(1,5):
self.canvas.create_image(x, y, image=self.randomCar, anchor='nw')
def mainloop(self):
while 1:
self.tk.update_idletasks()
self.tk.update()
time.sleep(0.01)
g = Game()
g.your_car_sprite()
rCars = g.random_cars_sprite()
main = mainloop()
我知道你的随机汽车不会出现的两个原因:
- 首先,您只定义一次随机位置,因此所有随机车辆将显示在彼此的顶部
- 其次,在使用
时,必须保留对每个不同图像的引用(请参阅和)PhotoImage
def random_cars_sprite(self):
self.randomCars = []
for i in range(1,5):
x = random.randint(0,1280)
y = random.randint(0,750)
randomCar = PhotoImage(file=os.path.join(folder, "purple.png"))
self.canvas.create_image(x, y, image=randomCar, anchor='nw')
self.randomCars.append(randomCar)
为什么要编写自己的
mainloop
方法?这比仅仅调用tkinter提供的mainloop
方法效率要低。你能解释一下如何调用我自己的mainloop函数吗?我没有看到任何用于起始线的代码,或者我看到任何用于移动对象的代码。我还没有做到这一点。我只是想在我走得更远之前把车放到画布上。在游戏类中调用self.tk.mainloop()
,或者在类外调用g.tk.mainloop()
。谢谢。我试试看。