我的python游戏中的得分没有正确加起来

时间:2013-10-07 16:52:12

标签: python

所以我一直在做一个小游戏只是为了测试自己,我似乎无法让分数更新,我可以请一些帮助吗?编辑:很抱歉这个问题没有特别说明,当小行星越过屏幕时问题是什么,第一个给出10分但是之后分数没有上升?我认为这段代码是一个问题,我想要它,所以在小行星传递到屏幕下方后,小行星被删除,然后它会给分数增加10点。我也是Livewires模块。

class Asteroid(games.Sprite):
    """
    A asteroid which falls through space.
    """ 
    image = games.load_image("asteroid_med.bmp")
    speed = 1

    def __init__(self, x, y = 10):
        """ Initialize a asteroid object. """
        super(Asteroid, self).__init__(image = Asteroid.image,
                                    x = x, y = y,
                                    dy = Asteroid.speed)
        self.score = games.Text(value = 0, size = 25, color  = color.green,
                                top = 5, right = games.screen.width-10)

        games.screen.add(self.score)


    def update(self):
        """ Check if bottom edge has reached screen bottom. """
        self.add_score()

    def add_score(self):
        if self.bottom > games.screen.height:
            self.score.value+=10
            self.score.right = games.screen.width - 10
            self.destroy()

3 个答案:

答案 0 :(得分:0)

你在增加分数后就会摧毁对象。

答案 1 :(得分:0)

让小行星调度事件或更新全局对象中的分数是一种更好的设计。目前,小行星本身正在跟踪得分,由于它被摧毁,因此不起作用。

答案 2 :(得分:0)

您在更新其分数后销毁该对象,并且该分数似乎是该对象的实例变量。您应该尝试将得分设为静态成员,而不是创建全局变量。这将使你的分数在小行星的每个实例中都持续存在。

http://linuxwell.com/2011/07/21/static-variables-and-methods-in-python/