如何从pygame精灵组传递值

时间:2016-02-18 19:41:36

标签: python pygame sprite

我正在构建一个模拟生成一堆士兵的精灵。他们穿过地图朝着一些枪支跑去。我希望枪支射击士兵。我正试图将士兵类的矩形x和y值传递给塔对象。

以下是相关代码:

class soldier(pygame.sprite.Sprite):  
    def __init__(self):  
        pygame.sprite.Sprite.__init__(self)  
        self.rect.centerx = soldier_starting_positionx               
        self.rect.centery = soldier_starting_positiony    

    def x(self):
        return (self.rect.centerx)  

class gaurdtower(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)

        self.rect.centerx = tower_starting_positionx
        self.rect.centery = tower_starting_positiony

    def update(self):
        print (soldier.x)

这两个类都在for循环中生成多个实例,并被添加到all_sprite pygame组。

打印输出是这样的行列表:
函数soldier.x在0x00000286C296F0D0

我想要的是一个简单的整数。

1 个答案:

答案 0 :(得分:0)

soldier.x引用士兵中的一个函数。类不包含任何实际的士兵数据。你需要引用一个士兵类的对象。

例如:

soldier = soldier()
soldier.x() # should return the soldiers x value.

在尝试这样的事情之前,我先看一下教程:http://learnpythonthehardway.org/book/ex40.html