Pygame rect.centre 属性

Pygame rect.centre attribute

所以这是 pygame python 代码的两部分:

a = self.img.get_rect(topleft = (self.x, self.y))
print(a.topleft)

这段代码的输出是:

(200, 189)

另一个pygame代码:

a = self.img.get_rect(topleft = (self.x, self.y)).center
print(a)

这段代码的输出:

(234, 213)

注:The value of self.x is 200 and self.y is 200

所以现在我的问题是,在我们将 .center 放在 pygame rect object or the variable a 之后,当我打印 a 的值时,它会发生什么变化以及 pygame 之后的 .center 有什么作用rect对象呢?

pygame.Surface.get_rect.get_rect() returns 具有 Surface 对象大小的矩形,但它 returns 始终从 (0 , 0) 因为 Surface 对象没有位置。矩形的位置可以由关键字参数指定。例如,可以使用关键字参数 topleft.

指定矩形的左上角

pygame.Rect对象有多种虚拟属性:

The Rect object has several virtual attributes which can be used to move and align the Rect:

x,y
top, left, bottom, right
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery
size, width, height
w,h

你实际设置的是一个矩形的左上角,图片的大小:

self.img.get_rect(topleft = (self.x, self.y))

最后,通过读取center属性得到这个矩形的中心点。由于图像的大小不为 0,因此 centertopleft 不同。