python - pygame:图像和 Sprite 有什么区别?

标签 python python-3.x pygame sprite

导入火箭 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 变得非常容易。

http://www.pygame.org/docs/ref/sprite.html

关于python - pygame:图像和 Sprite 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986383/

相关文章:

python - 如何在Python Scrapy中的子div中使用特殊的src获取href

django - 由于 models.DO_NOTHING,FOREIGN KEY 约束失败

python - 添加第二个 Sprite 不适用于 pygame 教程

python - 如何从多线程中获取值?

python - 访问实例属性和类属性的区别

python - 使阅读文档包括特殊成员的 autodoc 文档?

python - 每 'n' 次迭代暂停循环并等待用户按键。 - Python

python - 如何递归调用python中的函数将列表中的每个元素拖到底部?

python - py4j.protocol.Py4JError : org. apache.spark.api.python.PythonUtils.getEncryptionEnabled 在 JVM 中不存在

python - 游戏 : a fast way to find what is on screen before displaying it with insane amount of objects