提问人:Bezaleel 提问时间:9/23/2023 最后编辑:Bezaleel 更新时间:9/23/2023 访问量:28
我正在尝试创建一个pygame窗口并响应用户输入[重复]
I'm trying to create a pygame window and responding to user input [duplicate]
问:
这是我的源代码:
import sys
import pygame
from settings import Settings
class AlienInvasion:
"""Overall class to manage game assets and behavior."""
def __init__(self):
"""Initialize the game, and create game resources."""
pygame.init()
#self.screen = pygame.display.set_mode((1200, 800))
#pygame.display.set_caption('Alien Invasion')
self.bg_color = (230, 230, 230)
self.settings = Settings()
self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))
pygame.display.set_caption('Alien Invasion')
def run_game(self):
"""Start the main loop for the game."""
while True:
# watch for keyboard and mouse events.
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# Redraw the screen during each pass through the loop.
self.screen.fill(self.settings.bg_color)
# make the most recently drawn screen visible.
pygame.display.flip()
if __name__ == '__main__':
# make a game instance, and run the game.
a1 = AlienInvasion
a1.run_game()
当我运行程序时,我得到了一个:TypeError
Traceback (most recent call last):
File "c:\Users\franc\Desktop\pyprojects\game_project\alien_invasion.py", line 38, in <module>
a1.run_game()
TypeError: AlienInvasion.run_game() missing 1 required positional argument: 'self'
我导入了 和 模块,并创建了一个类,其中包含一个方法,然后是其余代码。在文件末尾,我创建了该类的一个实例,然后调用 .我以为它会显示一个空白的窗口屏幕。sys
pygame
__init__()
run_game()
答:
-2赞
Akrix
9/23/2023
#1
当您在类上调用某个类的方法而不是该类的实例时,通常会发生该错误。与其这样做,不如试试这个:
obj = AlienInvasion()
obj.run_game()
另外,您可以尝试添加所有代码吗?
评论
1赞
Karl Knechtel
9/23/2023
请阅读如何回答,不要试图回答缺少关键细节的问题。如果您需要猜测发生了什么才能回答,则该问题不符合标准;如果您发现自己要求更多信息,那么绝对不要回答。您几乎已经达到了该站点允许您对问题发表评论以询问此信息的地步。同样,关于每个初学者遇到的常见问题的问题都应该被标记为重复,而不是新鲜回答。
评论