Метод .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
Задание: собрать алгоритм для перемещения игрока по вертикали.