Минимальный рабочий пример, но вы должны увидеть его в любом уроке.
Сначала вы должны отправить изображение в буфер (представляющий поверхность экрана / окна)
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()