Пример
В этом примере определяется поверхность, а затем создаётся объект класса Rect
с помощью метода .get_rect()
:
import sys
import pygame
pygame.init()
SIZE = WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()
player = pygame.Surface((50, 50))
player.fill((255, 0, 0))
player_rect = player.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill((0, 0, 0))
screen.blit(player, (375, 275))
pygame.display.update()
clock.tick(30)
Пример прыжка
1. Переменные:
player_jump = 30
- сила прыжка
y_velocity = player_jump + 1
- скорость по оси Y
2. Поверхность и прямоугольник:
player = pygame.Surface((50, 50))
player.fill((255, 0, 0))
player_rect = player.get_rect()
player_rect.center = WIDTH // 2 - player_rect.width // 2, HEIGHT - player_rect.height // 2
3. Событие:
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE] and player_rect.bottom == 600:
y_velocity = player_jump * -1
Если клавиша пробел нажата и игрок находится на земле.
4. Прыжок и обратное падение:
if y_velocity <= player_jump:
if player_rect.bottom + y_velocity < 600:
player_rect.bottom += y_velocity
if y_velocity < player_jump:
y_velocity += 1
else:
player_rect.bottom = 600
y_velocity = player_jump + 1
5. Отрисовка:
screen.fill((0, 0, 0))
screen.blit(player, player_rect)
pygame.display.update()
Поверхность отображается в координатах прямоугольника.