如何在pygame中使用sprite rect的两侧?

时间:2017-09-02 18:12:01

标签: python pygame sprite

我试图在同一个sprite类的两个不同实例之间画一条线,sprite类如下所示编码(这只是__init__函数):

class Atom(pygame.sprite.Sprite):
"""Creates an atom of an element.
 The element can be specified using the element parameter.
 This will take a dict argument, contained in a constants file of some sort."""
def __init__(self, element, centre_loc):
    pygame.sprite.Sprite.__init__(self)

    self.image = pygame.Surface((30, 30), pygame.SRCALPHA)
    pygame.gfxdraw.aacircle(self.image, 15, 15, 14, (0, 255, 0))
    pygame.gfxdraw.filled_circle(self.image, 15, 15, 14, (0, 255, 0))


    self.rect = self.image.get_rect()
    self.rect.center = centre_loc
    self.element = element
    self.show_text(element)
    self.print_properties(self.element)

我尝试使用此处的代码执行此操作:

pygame.draw.line(screen, color, sprite.rect.right. sprite.rect.left)

我已经简化了上面的代码,以突出我实际做了什么。 找到上面的实际代码here,它在第25行注释掉。其余代码也可以在该存储库中找到以供参考。

我原本希望这会有效但是我得到了这个错误:

TypeError: Invalid start point argument

那我在这里做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:2)

sprite.rect.leftsprite.rect.right并且不是有效点,因为它们都是单个整数。你可能想要的是sprite.rect.topleftsprite.rect.topright,或者是等价的底部或者中等。