我有检查分数的功能,如果分数达到给定的分数,我的功能会(我还没有完成)提高水平,我的功能:
def levels(Score):
if score >= 100:
enemies = 6
velocity = 2
我在游戏循环中调用它:
levels(score)
该函数永远不会被执行,我的源代码http://pastebin.com/JPZSTA6a 行:35-38 和 150
谢谢
我有检查分数的功能,如果分数达到给定的分数,我的功能会(我还没有完成)提高水平,我的功能:
def levels(Score):
if score >= 100:
enemies = 6
velocity = 2
我在游戏循环中调用它:
levels(score)
该函数永远不会被执行,我的源代码http://pastebin.com/JPZSTA6a 行:35-38 和 150
谢谢
你有if score >= 100
当你可能的意思if Score >= 100
。该函数被执行,只是 if 语句总是计算为假。
正在调用该函数,但您正在分配给函数enemies
并velocity
在函数中分配,因此它们是函数的局部变量,然后在函数返回时被丢弃。所以你的函数被调用,但没有持久的效果。
你需要阅读 Python 中的局部变量和全局变量。正如其他人指出的那样,您也有两者Score
和score
这里。Python 区分大小写,它们是不同的名称。
这是一个范围问题,您所指的变量(敌人和速度)是在 while 循环内进一步创建的,因此它们不在您尝试修改它们的函数的范围内。您需要阅读执行模型,它应该能够阐明范围规则。
你的代码,解释:
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 是你的朋友。