导入火箭 Sprite (例如)并将其设置为图像与导入火箭 Sprite 并将其设置为 pygame 中的 Sprite 有什么区别?
最佳答案
我认为您只是对术语感到困惑:
- 图片
图像只是像素的集合。您使用“sprite”来引用磁盘上的图像,但这只是一个图像文件。要使用火箭示例,您可以像这样加载图像:
rocket_img = pygame.image.load('rocket.png').convert_alpha()
然后您可以使用以下方法在任何地方绘制此图像:
screen.blit(rocket_img, (x, y))
- 雪碧
Pygame 中的 Sprite 是一个对象,具有完整的内置功能集合。 Sprite 拥有图像作为其属性之一,但还有更多属性。另外,您可以将 Sprite 分组在一起,以便更容易更新或绘制。 Sprite 具有内置的碰撞功能。您可以添加自己的属性来跟踪位置、速度、动画等。
一个简单的 Sprite :
class Rocket(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load('rocket.png').convert_alpha()
self.rect = self.image.get_rect()
def update(self):
self.rect.x += 1
这将是一个火箭 Sprite ,您可以使用它来实例化
rocket = Rocket()
您可以使用以下方式进行绘制
screen.blit(rocket.image, rocket.rect)
并且它慢慢地向右移动(如果你在游戏循环中调用 update() :
rocket.update()
我建议查看 Sprite 文档 - 您可以通过组做更多事情,从而使处理大量 sprite 变得非常容易。
关于python - pygame:图像和 Sprite 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986383/