繁体   English   中英

PyGame-无法将一个表面涂抹到另一个表面

[英]PyGame - Unable to blit one surface onto another

我只是试图创建两个曲面,填充它们,然后将其中一个蒙上另一个。 但是,第二个Surface永远不会在第一个Surface之上渲染。 如果将第二个曲面涂抹到显示器的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()
  • 我试过同时使用update()和flip()
  • 当我将layer2写入显示(windowSurface)时,它工作得很好。

感谢您的任何建议!

您的问题是,在windowSurface.blit(layer1, (0,0)) layer1.blit(layer2, (0,0))之后有layer1.blit(layer2, (0,0)) windowSurface.blit(layer1, (0,0))这意味着您已经在将layer1拖到窗口之后将layer2拖到layer1。 您需要做的就是剪切layer1.blit(layer2, (0,0))并将其粘贴到windowSurface.blit(layer1, (0,0))以便首先执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM