我想我可以简单地这样做:
self.rect = self.image.get_rect(center=((self.pos_x, self.pos_y)))
但这似乎具有相同的效果:
self.rect = self.image.get_rect(bottomleft=((self.pos_x, self.pos_y)))
我错过了什么?两个对象都进入,就好像 (pos_x, pos_y) 元组描述其左下角一样。
最佳答案
不要将参数传递给方法self.image.get_rect()
,它返回一个pygame.Rect
对象,该对象具有许多属性:top,下、左、右、
topleft、topright、bottomleft、bottomright、size、width、height、center、centerx、centery、midleft、midright、midtop、midbottom #(this is from pygame docs)
你可以用它来将你的 Sprite 放置在任何位置在屏幕中,例如在这里,您将 Sprite 放置在屏幕中间:
def __init__(self, screen):
#Load image
#...
self.screen = screen
self.rect =self.image.get_rect()
self.screen_rect = self.screen.get_rect()
self.rect.centerx = self.screen_rect.centerx
self.rect.centery = self.screen_rect.centery
我希望这有帮助。
关于python - (Pygame/Python) 如何根据对象矩形的中间位置将对象放置在屏幕上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36378185/