我正在制作一个游戏,我需要在特定图像的区域内对我的对象进行 blit。我不想让我的表面来处理这些图像。可能吗?(我正在使用 pygame)
问问题
15424 次
1 回答
4
如果您能更好地解释您正在尝试做的事情,那么将来会更好,因为它会给您更多答案:)
据我了解,您希望将图像粘贴到另一个图像上:
为了使此代码起作用,设置了以下前提:
- 包含该程序的文件夹还包含名为 testimage.png 和 testimage0.jpg 的任意图像
- 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) 开始,这就是为什么 image1 的 (0,0) 与屏幕的 (0,0) 不同的原因。
我拍了一张程序的照片并编辑了一些箭头来解释我的观点:
希望这对您有所帮助,如果您认为可以接受,请记住接受作为答案。
于 2013-10-13T17:04:32.793 回答