Alien Invasion помогите программе найти аргумент

Asta

Новичок
Пользователь
Окт 21, 2020
3
0
1
from ship import Ship
import game_functions as gf

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)
# Start the main loop for the game.

# Запуск основного цикла игры.
# Назначение цвета фона.
bg_color = (0, 0, 255)
# Запуск основного цикла игры.
while True:
gf.check_events(ship)
ship.update()
gf.update_screen(ai_settings, screen, ship)
# Отслеживание событий клавиатуры и мыши.
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()

ошибка:

Traceback (most recent call last):
File “alien_invasion.py”, line 36, in <module>
run_game()
File “alien_invasion.py”, line 25, in run_game
ship.update()
AttributeError: ‘Ship’ object has no attribute ‘update’

P.S. без ship.update() в цикле while True в def run_game() корабль двигался вправо с каждым нажатием как и положено

класс с ошибкой:

import pygame
class Ship():
def __init__(self, screen):
“”“Инициализирует корабль и задает его начальную позицию.”“”
self.screen = screen
# Загрузка изображения корабля и получение прямоугольника.
self.image = pygame.image.load('images/ship.bmp')
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
# Флаг перемещения
self.moving_right = False

def update(self):
“”“Обновляет позицию корабля с учетом флага.”“”
if self.moving_right:
self.rect.centerx += 1

def blitme(self):
“”“Рисует корабль в текущей позиции.”“”
self.screen.blit(self.image, self.rect)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Код вставляйте с помощью ... -> код -> python.
Вот примеры кода из книги с гитхаба: alien_invasion.py и ship.py.
 

Asta

Новичок
Пользователь
Окт 21, 2020
3
0
1
Код вставляйте с помощью ... -> код -> python.
Вот примеры кода из книги с гитхаба: alien_invasion.py и ship.py.
спасибо. попробую. Хотя хотелось бы вникать в тему из книги, чего не позволяет сделать автор, поэтому просто вставлю итоговый код
 

Форум IT Специалистов