Почему изображения появляются за предыдущими изображениями при попытке вставить новые изображения в дисплей Pygame? - PullRequest
0 голосов
/ 06 сентября 2018

Я тестирую pygame (в python 2.7), прежде чем пытаюсь использовать его в любых программах. Я пытаюсь сделать так, чтобы изображение появилось на дисплее, подождите полсекунды, а затем закройте предыдущее изображение. с новым, но второе изображение размещается не поверх старого изображения, а под ним. Я попытался изменить порядок изображений, используя разные изображения, и даже попытался использовать 3 изображения.

import time as t
import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((1000,1000),0,32)
image1 = pygame.image.load("image1.png").convert_alpha()
image2 = pygame.image.load("image2.png").convert()
while True:
    screen.blit(image1,(0,0))
    pygame.display.update()
    t.sleep(0.5)
    screen.blit(image2,(0,0))
    pygame.display.update()

1 Ответ

0 голосов
/ 06 сентября 2018

Ваш image2 фактически появляется перед вашим image1. Но только на долю секунды.

Сразу же после update отображения вы вернетесь к началу цикла while, который сразу же скопирует еще одну копию image1 перед image2.

Если вы хотите, чтобы они чередовались вперед и назад каждые полсекунды, вам просто нужно добавить еще один sleep в конце цикла.

Если вы хотите, чтобы он просто нарисовал image1, подождите, нарисуйте image2 и покончите с этим, просто избавьтесь от цикла while.

...