我只是想创建两个Surfaces,填充它们然后将它们一个blit到另一个。但是,第二个Surface永远不会在第一个表面上呈现。如果我将第二个表面blit到显示器Surface上,它会渲染得很好。不确定是否对彼此叠加的表面(除显示之外)进行分层限制。这是我的代码:
import pygame, sys
from pygame.locals import *
pygame.init()
windowSurface = pygame.display.set_mode((500, 400), 0, 32)
pygame.display.set_caption('Hello world!')
windowSurface.fill((255,255,255))
layer1 = pygame.Surface((100,100))
layer1.fill((0,255,0))
layer2 = pygame.Surface((50,50))
layer2.fill((255, 0, 0))
windowSurface.blit(layer1, (0,0))
layer1.blit(layer2, (0,0))
pygame.display.flip()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
感谢您的任何建议!
答案 0 :(得分:1)
你的问题是你在layer1.blit(layer2, (0,0))
之后有windowSurface.blit(layer1, (0,0))
这意味着你在第1层已经完成对窗口的blitting之后将第2层blint到第1层。您需要做的就是剪切layer1.blit(layer2, (0,0))
并将其粘贴到windowSurface.blit(layer1, (0,0))
以上,以便首先执行。