self丢失,在编写飞机大战
import pygame
class PlaneGame(object):
def __init__(self):
print('游戏初始化')
self.screen=pygame.display.set_mode((400,700))
self.clock=pygame.time.clock()
self.__create_sprites()
def star_game(self):
print('游戏开始')
while True:
self.clock.tick(60)
self.__check_collide()
self.__event_handler()
self.__update_sprints()
pygame.display.update()
def __update_sprints(self):
pass
def __check_collide(self):
pass
def __create_sprites(self):
pass
def __event_handler(self):
for even in pygame.event.get():
if even.type==pygame.QUIT:
PlaneGame.star_game()
def __game_over(self):
print('游戏结束')
pygame.quit()
exit()
if __name__ == '__main__':
g=PlaneGame
g.star_game()
缺少self报错
if name == 'main':
g=PlaneGame
g().star_game()
正常运行
g=PlaneGame之后少了()
self.clock=pygame.time.Clock() #Clock的第一个C是大写
PlaneGame.star_game() 应该改成 self.__game_over()
你题目的解答代码如下:
import pygame
class PlaneGame(object):
def __init__(self):
print('游戏初始化')
self.screen=pygame.display.set_mode((400,700))
self.clock=pygame.time.Clock() #Clock的第一个C是大写
self.__create_sprites()
def star_game(self):
print('游戏开始')
while True:
self.clock.tick(60)
self.__check_collide()
self.__event_handler()
self.__update_sprints()
pygame.display.update()
def __update_sprints(self):
pass
def __check_collide(self):
pass
def __create_sprites(self):
pass
def __event_handler(self):
for even in pygame.event.get():
if even.type==pygame.QUIT:
# PlaneGame.star_game()
self.__game_over()
def __game_over(self):
print('游戏结束')
pygame.quit()
exit()
if __name__ == '__main__':
g=PlaneGame() #加上()
g.star_game()
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
漏写了一对括号,改成这样就行了:
if __name__ == '__main__':
g = PlaneGame()
g.star_game()
31行代码改成
g=PlaneGame()
就好啦,您忘了加括号~~
if __name__ == '__main__':
g=PlaneGame()
g.star_game()
我有飞机大战的代码,不会找我
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!