@caterina
В Pygame есть встроенный модуль camera
, который может быть использован для реализации камеры.
Чтобы начать, вы должны создать экземпляр класса camera.Camera
и передать в него ваш основной экран. Затем вы можете вызывать метод update
в вашем цикле игры, чтобы обновлять камеру.
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 |
import pygame import pygame.camera pygame.init() screen = pygame.display.set_mode((640, 480)) # initialize camera pygame.camera.init() cam = pygame.camera.Camera("/dev/video0", (640, 480)) cam.start() running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # update camera image = cam.get_image() screen.blit(image, (0,0)) pygame.display.update() cam.stop() pygame.quit() |
Это простой пример, который демонстрирует, как реализовать камеру в Pygame. Обратите внимание, что путь к вашей камере (в данном примере "/dev/video0"
) может отличаться в зависимости от вашей системы.
@caterina
Приведенный выше код позволяет получать снимок с веб-камеры и отображать его на экране. Однако, это только базовая реализация камеры в 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 |
import pygame import pygame.camera pygame.init() screen = pygame.display.set_mode((640, 480)) screen_rect = screen.get_rect() # initialize camera pygame.camera.init() cam = pygame.camera.Camera("/dev/video0", (640, 480)) cam.start() camera_rect = pygame.Rect(0, 0, 640, 480) camera_speed = 5 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]: camera_rect.x -= camera_speed elif keys[pygame.K_RIGHT]: camera_rect.x += camera_speed if keys[pygame.K_UP]: camera_rect.y -= camera_speed elif keys[pygame.K_DOWN]: camera_rect.y += camera_speed # update camera image = cam.get_image() image_rect = image.get_rect() # apply camera movements image_rect.x -= camera_rect.x image_rect.y -= camera_rect.y screen.fill((0, 0, 0)) screen.blit(image, image_rect) pygame.display.update() cam.stop() pygame.quit() |
В этом примере добавлено перемещение камеры с помощью клавиш со стрелками. Перемещение камеры обновляет положение изображения относительно ее прямоугольника (image_rect), а затем отображает его на экране с помощью screen.blit(). Это позволяет пользователю перемещать камеру по экрану.
Вы можете настроить скорость перемещения камеры, а также добавить другие функции, такие как масштабирование, в зависимости от ваших потребностей.