如何获得精灵在Pygame中的位置?

时间:2019-03-24 07:40:27

标签: python pygame

因此,我正在尝试对鼠标进行编程,使其移动到屏幕上最近的一块奶酪并吃掉它。但是,为此,我需要找到其他子画面的位置/坐标。那么我如何找到一个精灵在Pygame中的位置?谢谢!

1 个答案:

答案 0 :(得分:2)

根据文档,每个Sprite都必须具有my_list = ['a', 'b', 're_match', 'd', 'line_to_extract_1', 'f', 'g','re_match', 'i', 'line_to_extract_2', 'k'] match_item = 're_match' new_list = [my_list[i+2] for i, x in enumerate(my_list) if x == match_item] # ['line_to_extract_1', 'line_to_extract_2'] 属性。
请参阅pygame.sprite的文档:

  

基本的Sprite类可以将其包含的Sprite绘制到Surface。 .rect方法要求每个Sprite具有一个Group.draw()属性和一个Surface.image

Surface.rect属性必须由应用程序设置:

再次,我将参考文档:

  

子类化Sprite时,请确保在将Sprite添加到组之前调用基本初始化程序。例如:

.rect

当然,属性也可以直接设置为sprite对象:

例如

class Block(pygame.sprite.Sprite):

    # Constructor. Pass in the color of the block,
    # and its x and y position
    def __init__(self, color, width, height):
       # Call the parent class (Sprite) constructor
       pygame.sprite.Sprite.__init__(self)

       # Create an image of the block, and fill it with a color.
       # This could also be an image loaded from the disk.
       self.image = pygame.Surface([width, height])
       self.image.fill(color)

       # Fetch the rectangle object that has the dimensions of the image
       # Update the position of this object by setting the values of rect.x and rect.y
       self.rect = self.image.get_rect()

之后,可以随时从mySprite = pygame.sprite.Sprite() mySprite.image = pygame.Surface([width, height]) mySprite.rect = mySprite.image.get_rect() 属性获取位置。参见pygame.Rect

例如

.rect
topLeftX, tolLeftY = mySprite.rect.topleft