功能未被调用

时间:2012-04-28 00:35:02

标签: python pygame

我有检查分数的功能,如果分数达到给定分数,我会(我还没有完成)增加水平,我的功能:

def levels(Score):
 if score >= 100:
   enemies = 6
   velocity = 2

我在游戏循环中调用它:

levels(score)

该函数永远不会被执行,我的源代码http://pastebin.com/JPZSTA6a 线:35-38和150

谢谢

4 个答案:

答案 0 :(得分:2)

当您可能需要if score >= 100时,您有if Score >= 100。该函数被执行,只是if语句总是计算为false。

答案 1 :(得分:1)

这是一个范围问题,你引用的变量(敌人和速度)是在while循环中进一步创建的,因此它们不在你试图修改它们的函数的范围内。您需要阅读Execution model它应该能够澄清范围规则。

答案 2 :(得分:1)

正在调用该函数,但是您要在函数中分配enemiesvelocity,因此它们是函数的本地函数,然后在函数返回时被丢弃。所以你的函数被调用,但没有持久的效果。

您需要阅读Python中的locals和globals。正如其他人所指出的那样,您同时拥有Scorescore。 Python区分大小写,这些名称不同。

答案 3 :(得分:0)

你的代码,转述:

def game():

    def levels(Score):
        print 'levels!'

    while start == True:
        print 'start is indeed True!'
        while not finish or falling: 
            'I am not Finnish'     
            for i in range(enemies):
                'alas for I am beset by enemies!'
                levels(score)

那么,为什么不调用levels()?我想这些许多控制流程项中的一个并不像你想要的那样。我不能说例如你的敌人变量是否为空但我可以告诉你打印是你的朋友。