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