Статья Автор: Омарбек Нұр-Мұхаммед

Практикум 1

Метод .update() класса Player

В методе нужно реализовать перемещение игрока.

Модуль player
import pygame


class Player(pygame.sprite.Sprite):
    def __init__(self, x, y):
        ...

    def reset(self, screen):
        ...

    def update(self, left, right):
        if left:
            self.x_speed = -5
        elif right:
            self.x_speed = 5

        if not (left or right):
            self.x_speed = 0

        self.rect.x += self.x_speed
Модуль main
from player import Player

import sys
import pygame
pygame.init()

SIZE = WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()

LEFT = RIGHT = False

p1 = Player(400, 300)

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
            LEFT = True
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
            RIGHT = True

        elif event.type == pygame.KEYUP and event.key == pygame.K_LEFT:
            LEFT = False
        elif event.type == pygame.KEYUP and event.key == pygame.K_RIGHT:
            RIGHT = False

    screen.fill((255, 255, 255))

    p1.reset(screen)
    p1.update(LEFT, RIGHT)

    pygame.display.update()

    clock.tick(60)
  • left и right - это сигналы, которые указывают игроку куда двигаться, влево или вправо
  • Положение прямоугольника по оси X изменяется за счёт свойства x_speed
  • Если ни одна из клавиш не нажата, то скорость по оси X равна 0

 

Задание: собрать алгоритм для перемещения игрока по вертикали.

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать