首页 > 解决方案 > 为什么屏幕功能总是出错?

问题描述

主文件

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()

设置.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'

标签: pythonpygame

解决方案


ai_settings.screen_width在您的代码中,您最初为函数中的第一个参数编写,set_mode(...)但第二个参数具有ai_settings.screen.height. 您很可能需要将第二个句点替换为下划线 ( ai_settings.screen_height)。


推荐阅读