從一個類是我的一個pygame遊戲的主菜單,我試圖調用一個函數。基本上,我有一本字典:Pygame菜單點擊功能
if __name__ == "__main__":
functions = {"start": main, "Quit": terminate}
我具有這些調用在我的課,當點擊菜單項的方法是:
def runMenu(self):
mainloop = True
while mainloop:
self.__clock.tick(50)
for event in pygame.event.get():
#print(pygame.mouse.get_pressed())
if event.type == pygame.QUIT:
mainloop == False
terminate()
if event.type == pygame.MOUSEBUTTONDOWN:
for item in self.items:
#print(item.isMouseSelecting(pygame.mouse.get_pos()))
if item.isMouseSelecting(pygame.mouse.get_pos()):
#print(self.__functions)
self.__functions[item]() #initialized in the __init__ so that it holds my dictionary in self.__functions
但是,我不能調用每一個的對象引用我的功能(主,並終止)。我不知道如何解決這個問題。我看到一個例子,其中的人通過self.__ functionsitem.text調用函數,但是這對我不起作用,因爲我無法在.text方法上找到任何內容,並在執行此操作時得到屬性錯誤。
這是我的錯誤我有什麼上面:
Traceback (most recent call last):
File "/Users/tjleggz/Documents/CS 110/squirrel/squirrel.py", line 501, in <module>
game.runMenu()
File "/Users/tjleggz/Documents/CS 110/squirrel/squirrel.py", line 138, in runMenu
self.__functions[item]() #cant call bc its not same object, just a ref to object or [email protected]
KeyError: <__main__.MenuItem object at 0x29758c8>
>>>
謝謝!
[Pygame綁定菜單項的功能(點擊)]的可能重複](http://stackoverflow.com/questions/23505226/pygame-binding-menu-items-to-functions-by-clicking) – sloth