如何在python中,在特定图像区域内对图像进行blit?

时间:2013-10-12 16:31:41

标签: python image object pygame blit

我正在制作游戏,我需要在特定图像区域内对象进行blit。我不想让我的表面搞砸这些图像。可能吗? (我正在使用pygame)

1 个答案:

答案 0 :(得分:3)

将来会更好,如果你能解释一下你想要做些什么,因为它可以给你更多的答案:)

根据我的理解,你想将图像blit到另一张图像上:

要使此代码生效,请设置以下前提:

  • 包含该程序的文件夹还包含名为testimage.png和testimage0.jpg的arbritary图像
  • 已安装PyGame

如果您遵循上述前提,我已经编写了以下代码:

import pygame

screen = pygame.display.set_mode([800, 800], 0, 32)
#initiates screen

image1 = pygame.image.load('testimage0.jpg')
#testimage0.jpg is loaded into the variable image1

image2 = pygame.image.load('testimage.png').convert_alpha()
#testimage.png is loaded into the variable image2

while True:
    screen.fill([0, 0, 0])
    #screen is filled with a black background

    screen.blit(image1, [200, 200]) 
    #here image1 is blitted onto screen at the coordinates (200,200)

    image1.blit(image2, [0, 0])
    #here image2 is blitted onto image1 at the coordinates (0,0) which starts at the upper left of image1

    pygame.display.update()
    #updates display, which you can just ignore

图像只是带有精灵或图片的表面。曲面的坐标系始终从左上角(0,0)开始,这就是为什么(0,0)的image1与屏幕的(0,0)不同。

我拍了一张该节目的照片并编辑了一些箭来解释我的观点:

希望这是一个帮助,如果你认为可以接受,请记住接受答案:)