0

我需要将图像制作为 Rect 的最简单方法,是否有此功能,或者我是否需要从一开始就将其制作为 Rect?我有一个脚本是玩家四处移动,但我希望角色的图像是一个矩形,所以我可以用它做更多的事情。

4

1 回答 1

0

我希望角色的图像是一个矩形并没有多大意义,但您可能正在寻找该类的get_rect方法Surface

get_rect()
获取 Surface 的矩形区域
get_rect(**kwargs) -> Rect
返回一个覆盖整个 Surface 的新矩形。这个矩形总是从 0 开始,宽度为 0。和高度与图像大小相同...

(我猜对于常规图像,您的意思是 a Surface,因为 aSurface是 pygame 表示图像的方式)

请注意,Rect此函数返回的值始终从0,开始0。如果您已经以某种方式跟踪对象的位置(例如 axy变量),您可以

  • 删除这些变量并仅使用 aRect来跟踪对象的位置。如果您移动对象,而不是更改xandy变量(例如x += mx/ y += my),您只需更新Rect(例如pos.move_ip(mx, my)哪里posRect)。

  • Rect每当您需要时创建一个新的Rect,并确保它指向正确的位置,使用命名参数(例如your_surface.get_rect(x=x, y=y)

  • 使用 a Sprite,它基本上是 aSurface和 a的组合Rect

于 2013-09-17T08:18:39.337 回答