2016-02-14 93 views
1

如何转换表面的一小部分到图像对象的小区域? 我不是一个Python专家,所以当文档谈论一个名为numpty的类时?和另一个称为tostring和fromstring的函数,但不清楚。我认为from_rect()可以帮助,但对我来说也不明显。需要移动屏幕

我不知道什么是最好的方式来做到以下几点: 我正在加载一张照片,然后绘制到它上面,然后再次保存。但是想要将一个小的32x32区域从中间转换为精灵,然后将精灵重新插入,但降低了几个像素(没有透明度或任何幻想)。如何将表面的一小部分转换为图像对象?

size = width, height = 1080, 720 
screen = pygame.display.set_mode(size) 
screen.fill(black) 
keyboard = pygame.image.load("keyboard.jpg") 
keyboard = pygame.transform.scale(keyboard, size) 
screen.blit(keyboard, (0,0)) 
image = screen.getmeaspriteplease(500,300,32,32) # how do I do this? 
screen.blit(image, (500,400)) 

回答

0

您正在寻找pygame.Surface.subsurface

keyboard = pygame.transform.scale(keyboard, size) 
my_little_copy = keyboard.subsurface(Rect(500, 300, 32, 32)).copy() 
screen.blit(keyboard, (0, 0)) 
screen.blit(my_little_copy, (500, 350)) 
+0

感谢@sloth。不知道谁给了答案-1,但会立即尝试并回应,因为它看起来可能会满足我的最低需求。在哪一点我会发布确认。 –

+0

谢谢你! 我将最后一位改为: pygame.draw.rect(screen,black,Rect(500,300,32,32),0)#blanked screen.set_clip(Rect(500,300,32,32 ))#制作剪裁矩形 screen.blit(my_little_copy,(500,350 + 3))#移动剪下来的3 px 它修剪剪切后的图像的底部,就像我想要的那样。 –