Игнорирование событий клавиш на время движения куба

Куб двигается по полю, тем самым он должен закрашивать пустые поля, но есть недочёт, если во время движения куба нажать на другую клавишу, например куб двигается вниз, и во время движения нажать вправо, то он изменит свой курс.

from cube import Cube


class Board:
    # создание поля
    def __init__(self, side, left, top):
        self.board = [[0] * 9 for _ in range(9)]
        # значения по умолчанию
        self.side_cell = side
        self.left = left
        self.top = top

    def render(self, surface):
        for rol in range(len(self.board)):
            for col in range(len(self.board[rol])):
                pygame.draw.rect(surface, 'white',
                                 ((self.left + col * self.side_cell),
                                  (self.top + rol * self.side_cell),
                                  self.side_cell, self.side_cell))


if __name__ == '__main__':
    pygame.init()
    key = None
    clock = pygame.time.Clock()
    FPS = 60
    side = 70
    left = 1000 // 2 - (side * 9) // 2
    top = 700 // 2 - (side * 9) // 2
    cube = Cube(left, top, 'img.png')
    screen = pygame.display.set_mode((1000, 700))
    pygame.display.set_caption('Paint Cube')
    pygame.display.set_icon(pygame.image.load('img.png'))
    screen.fill('#3FC1C9')
    board = Board(side, left, top)
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_DOWN:
                    key = 'down'
                elif event.key == pygame.K_UP:
                    key = 'up'
                elif event.key == pygame.K_LEFT:
                    key = 'left'
                elif event.key == pygame.K_RIGHT:
                    key = 'right'
        if key:
            cube.move(key)

        board.render(screen)
        screen.blit(cube.image, cube.rect)
        pygame.display.update()
        clock.tick(FPS)


class Cube(pygame.sprite.Sprite):
    def __init__(self, x, y, filename):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(filename)
        self.rect = self.image.get_rect(left=x, top=y)

    def move(self, key):
        if key == 'down':
            if self.rect.y < 595:
                self.rect.y += 70
        elif key == 'up':
            if self.rect.y > 35:
                self.rect.y -= 70
        elif key == 'left':
            if self.rect.x > 185:
                self.rect.x -= 70
        elif key == 'right':
            if self.rect.x < 745:
                self.rect.x += 70

    def get_coords_cube(self):
        x = self.rect.x
        y = self.rect.y
        coords = (x, y)
        return coords

Ответы (0 шт):