파이썬 스파이더 에러
조회수 822회
파일명: alien_invasion.py
import sys
import pygame
from settings import Settings
from ship import Ship
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("Alien Invasion")
#우주선 만들기
ship = Ship(screen)
while True: #게임 메인 루프 시작
for event in pygame.event.get(): #키보드와 마우스 이벤트
if event.type == pygame.QUIT:
sys.exit()
screen.fill(ai_settings.bg_color) #루프 실행할 때마다 화면에 다시 그림
ship.blitme()
pygame.display.flip() #가장 최근에 그린 화면
run_game()
파일명:settings.py
class Settings():
def __init__(self):
self.screen_width = 1000
self.screen_height = 600
self.bg.color = (230, 230, 230)
파일명:Ship.py
import pygame
class Ship():
def __init__(self, screen):
#우주선 초기화&시작위치 지정
self.screen = screen
#우주선 이미지 불러오기, 이미지 rect 객체 설정
self.image = pygame.image.load('C:/Users/user/Pictures/space ship.PNG')
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
#우주선 새로 만들 때 항상 화면 아래 중앙에 만들기
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
def blitme(self):
#우주선 현재 위치에 우주선 그리기
self.screen.blit(self.image, self.rect)
교재에 나와있는 그대로 작성했습니다. 그런데 alien_invasion에서 실행해보면
> Reloaded modules: settings, ship
>Traceback (most recent call last):
> File "C:\Users\user\.spyder-py3\alien_inavasion.py", line 35, in <module>
run_game()
> File "C:\Users\user\.spyder-py3\alien_inavasion.py", line 16, in run_game
ai_settings = Settings()
>File "C:\Users\user\.spyder-py3\settings.py", line 14, in __init__
self.bg.color = (230, 230, 230)
>AttributeError: 'Settings' object has no attribute 'bg'
이런 오류가 뜹니다ㅜㅜ 보통 인스턴스 속성 오류라고 뜨는데 어디가 잘못되었는지 모르겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력