2016-07-15 85 views
0

我只是试图创建两个表面,填充它们,然后将一个表面粘贴到另一个表面上。然而,第二个Surface从不在第一个渲染之上渲染。如果我将第二个表面投射到显示器表面上,则渲染效果很好。不确定是否对层叠表面(显示除外)有一个限制。这里是我的代码:PyGame - 无法将一个表面粘贴到另一个表面

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() 
  • 我同时使用更新()和翻转()
  • 当我写二层到显示器(windowSurface)它工作得很好尝试。

感谢您的任何建议!

回答

1

你的问题是你在windowSurface.blit(layer1, (0,0))之后有layer1.blit(layer2, (0,0))这意味着在layer1已经完成blitting到窗口之后你将blitting layer2到layer1。所有你需要做的就是削减layer1.blit(layer2, (0,0))并粘贴它上面windowSurface.blit(layer1, (0,0)),以便它首先执行。

相关问题