pygame精灵和表面有什么区别?

问题描述

查看官方文档如下: 表面对象是表示矩形 2D 图像的对象。 Sprite 类旨在用作游戏中不同类型对象的基类。

都有image和rect属性,区别是sprite可以分组吗?

解决方法

它们都有 image 和 rect 属性 [...]

不,这是错误的。 pygame.Surface 没有 rect 属性。 pygame.Surface.get_rect.get_rect() 返回一个具有 Surface 对象大小的矩形,该矩形总是从 (0,0) 开始,因为 Surface 对象没有位置。返回的矩形只是从 (0,0) 开始的表面积大小的矩形。


简而言之:pygame.Surface 没有位置,它只是一个位图。 pygame.sprite.Sprite 是一个由 Surface 对象和 pygame.Rect 对象组成的对象。 Sprite 的一个实例描述了图像在游戏窗口中的位置。