为什么screen函数总是出错?
Why the screen function is always wrong?
main.py
import sys
import pygame
from settings import Settings
def run_game():
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode(
(ai_settings.screen_width, ai_settings.screen.height))
pygame.display.set_caption("Rocket Flying")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill(ai_settings.bg_color)
pygame.display.flip()
run_game()
settings.py
class Settings():
def __init__(self):
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (87,250,255)
追溯(最近调用最后):
File "C:\Users\C4nEzra\Desktop\Program\Rocket_Flaying\main.py", line 24, in <module> run_game()
File "C:\Users\C4nEzra\Desktop\Program\Rocket_Flaying\main.py", line 11, in run_game
(ai_settings.screen_width, ai_settings.screen.height))
AttributeError: 'Settings' object has no attribute 'screen'
在您的代码中,您最初为 set_mode(...)
函数中的第一个参数编写 ai_settings.screen_width
,但第二个参数具有 ai_settings.screen.height
。您很可能需要将第二个句点替换为下划线 (ai_settings.screen_height
)。
main.py
import sys
import pygame
from settings import Settings
def run_game():
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode(
(ai_settings.screen_width, ai_settings.screen.height))
pygame.display.set_caption("Rocket Flying")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill(ai_settings.bg_color)
pygame.display.flip()
run_game()
settings.py
class Settings():
def __init__(self):
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (87,250,255)
追溯(最近调用最后):
File "C:\Users\C4nEzra\Desktop\Program\Rocket_Flaying\main.py", line 24, in <module> run_game() File "C:\Users\C4nEzra\Desktop\Program\Rocket_Flaying\main.py", line 11, in run_game (ai_settings.screen_width, ai_settings.screen.height)) AttributeError: 'Settings' object has no attribute 'screen'
在您的代码中,您最初为 set_mode(...)
函数中的第一个参数编写 ai_settings.screen_width
,但第二个参数具有 ai_settings.screen.height
。您很可能需要将第二个句点替换为下划线 (ai_settings.screen_height
)。