我正在学习 pygame
并且想要一个具有三种状态的按钮的图形:正常、悬停和按下。我有一个这样的图像……
…我想使用它的一部分来获得一个新的 Surface
。
我正在使用此代码加载图像:
buttonStates = pygame.image.load(os.path.join('image','button.png'))
如何仅使用该图形的一部分制作新表面?
原文由 dobleseis 发布,翻译遵循 CC BY-SA 4.0 许可协议
您还可以使用 pygame.Surface.subsurface
方法创建与其父表面共享像素的子表面。但是,您必须确保该矩形位于图像区域内,否则将引发 ValueError: subsurface rectangle outside surface area
。
subsurface = a_surface.subsurface((x, y, width, height))
原文由 skrx 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答899 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
表面上的 blit 方法将另一个表面“粘贴”到它上面。 blit 的第一个参数是源表面。第二个是要粘贴到的位置(在本例中为左上角)。第三个(可选)参数是要从中粘贴的源图像区域——在本例中是一个 80x80 正方形,距顶部 30 像素,距左侧 30 像素。