Как мне показать картинку в Pygame? - PullRequest
0 голосов
/ 24 февраля 2020

Мне интересно, как показать картинку в пигме. Это то, что я пробовал до сих пор

house = pygame.image.load('house.png')

Это то, как вы определяете картинку, и мне нужно вызывать ее позже в коде, или я просто делаю эту строку кода? Если бы кто-то мог помочь, это было бы здорово! Спасибо!

1 Ответ

1 голос
/ 24 февраля 2020

Минимальный рабочий пример, но вы должны увидеть его в любом уроке.

Сначала вы должны отправить изображение в буфер (представляющий поверхность экрана / окна)

screen.blit(image, (0, 0))  # draw in buffer

, а затем отправить буфер на экране / окне (после того, как вы нарисовали все элементы в буфере)

pygame.display.flip() # send buffer on screen

PyGame использует двойную буферизацию для предотвращения мерцания изображения

Для отдельное изображение c Вы можете сделать это раньше mainloop, но обычно оно используется внутри mailoop, поэтому в каждом l oop вы можете изменять изображение или другие элементы для создания анимации.

#import sys
import pygame

# --- constants --- (UPPER_CASE_NAMES)

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
FPS = 25 # frames per seconds

# --- classes --- (CamelCaseNames)

# empty

# --- functions --- (lower_case_names)

# empty

# --- main --- (lower_case_names)

pygame.init()
screen = pygame.display.set_mode( (SCREEN_WIDTH, SCREEN_HEIGHT) )

image = pygame.image.load('image.jpg') #.convert()

# --- mainloop ---

clock = pygame.time.Clock()

running = True
while running:

    # --- events ---

    for event in pygame.event.get():
        if event.type == pygame.QUIT: # exit on clicking button [X]
            running = False

        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_ESCAPE: # exit on pressing ESC
                running = False

    # --- draws ---

    screen.fill(BLACK) # clear screen
    screen.blit(image, (0, 0)) # draw in buffer
    pygame.display.flip() # send buffer on screen

    # --- FPS ---

    clock.tick(FPS) # slow down to 25 FPS

# --- end ---

pygame.quit()
#sys.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...