Коллеги,
изучаю ООП по учебнику Эрик Мэтиз "Изучаем Python". Пишу по нему игру с помощью pygame. И возникла проблема - не получается настроить плавное движение модели. Помогите, пожалуйста, решить проблему.
import sys, pygame
def check_events(ship):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#проверка нажатия клавиши
elif event.type == pygame.KEYDOWN:
if event.key== pygame.K_RIGHT:
#Переместить корабль вправо.
ship.moving_rignt = True
elif event.type == pygame.KEYUP:
if event.key== pygame.K_RIGHT:
ship.moving_rignt = False
def update_screen(ai_settings, screen, ship):
'''обновляет изображение на экране и отображает новый экран
при каждом проходе цикла перерисовывается экран'''
screen.fill(ai_settings.bg_color)
ship.blitme()
#отображание последнего прорисованного экрана
Идея в том, что по умолчанию движение коробля (пока только в право) находится в состоянии False. А когда нажата клавиша, движение переходит в состояние True и позиция модели начинает сдвигаться, пока клавижа не отжата.
import pygame
class Ship():
def __init__(self, screen):
self.screen = screen
self.image = pygame.image.load('images/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
<b> self.moving_right = False # Flag moving</b>
def update(self):
'''update ship`s posicition with flag'''
if self.moving_right:
self.rect.centerx += 1
def blitme(self):
Как я понимаю, проблема в модуле check_events(ship)