@ella
Для создания камеры, следующей за игроком в pygame, вы можете использовать метод сдвига координат экрана. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import pygame # Константы для окна WIDTH = 800 HEIGHT = 600 # Константы для игры и камеры PLAYER_WIDTH = 50 PLAYER_HEIGHT = 50 CAMERA_SPEED = 5 # Инициализация Pygame pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) clock = pygame.time.Clock() # Создание игрока player_rect = pygame.Rect(0, 0, PLAYER_WIDTH, PLAYER_HEIGHT) # Игровой цикл running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Перемещение игрока keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_rect.x -= CAMERA_SPEED if keys[pygame.K_RIGHT]: player_rect.x += CAMERA_SPEED if keys[pygame.K_UP]: player_rect.y -= CAMERA_SPEED if keys[pygame.K_DOWN]: player_rect.y += CAMERA_SPEED # Сдвиг камеры camera_x = player_rect.x - WIDTH/2 camera_y = player_rect.y - HEIGHT/2 # Отрисовка screen.fill((0, 0, 0)) pygame.draw.rect(screen, (255, 0, 0), player_rect.move(-camera_x, -camera_y)) pygame.display.flip() clock.tick(60) pygame.quit() |
В этом примере игрок перемещается при нажатии клавиш стрелок, а камера следует за ним, сдвигая экран. При отрисовке игрока на экране, его координаты сначала смещаются относительно камеры (player_rect.move(-camera_x, -camera_y)
), а затем рисуются на экране.