0

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

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

我在游戏循环中调用它:

levels(score)

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

谢谢

4

4 回答 4

2

你有if score >= 100当你可能的意思if Score >= 100。该函数被执行,只是 if 语句总是计算为假。

于 2012-04-28T00:40:33.370 回答
2

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

你需要阅读 Python 中的局部变量和全局变量。正如其他人指出的那样,您也有两者Scorescore这里。Python 区分大小写,它们是不同的名称。

于 2012-04-28T03:21:17.470 回答
1

这是一个范围问题,您所指的变量(敌人和速度)是在 while 循环内进一步创建的,因此它们不在您尝试修改它们的函数的范围内。您需要阅读执行模型,它应该能够阐明范围规则。

于 2012-04-28T00:47:21.163 回答
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() 呢?我想这些控制流项目之一并没有按照你想要的方式进行。例如,我不能说你的敌人变量是否为空,但我可以告诉你 print 是你的朋友。

于 2012-04-28T00:51:29.507 回答