2012-04-27 56 views
-1

我会留下一个简单的等级系统。当比分变量达到一定数目将增加敌人(球)&速度(速度),例如:简单等级系统

if score >= 500: 
    enemies=6 
    velocity=2 

我都试过一些方法,在我第一次尝试是像在我的游戏循环以上,但我错误:

Traceback (most recent call last): 
File "C:\Users\MO\Desktop\Twerk\ballbounce_changed.py", line 233, in <module> 
    game() 
File "C:\Users\MO\Desktop\Twerk\ballbounce_changed.py", line 182, in game 
positionx[i]=positionx[i]+positionxmove[i] 
    IndexError: list index out of range 

我也尝试过其他方法,没有工作。你能帮我实施一个关卡系统吗?我的游戏代码可以在这里找到:http://pastebin.com/nhqKdR19

谢谢

+2

(不看pastebin :)你的实现和你的错误似乎*根本*发散。检查'positionx'和'positionxmove'的尺寸,看看它们是否相等,然后再尝试类似的东西。 – Makoto 2012-04-27 22:43:53

+2

只要看看你的源代码,你真的需要开始使用类。有很多存储索引数据的列表是不正常的,会导致错误。尝试在游戏中使用实体类。 – 2012-04-27 22:46:52

+1

另外,你应该避免'if score == 500'并使用'if score> = 500'。当你使用平等时,你的难度将永远不会增加,除非用户在游戏循环结束时达到500点。你想要的是一旦用户获得了500点或更多的点数,就可以将其拉高。 – 2012-04-27 22:51:14

回答

1

相反的:

if score == 500: 
    enemies = 6 
    velocity = 2 

你或许应该有一个increase_difficulty()方法修改您的跟踪名单,并增加了velocity值。正如我上面提到的,您还应该使用>=而不是==。然后你的游戏循环代码将是:

if score >= 500: 
    increase_difficulty() 
1

的问题是你的代码最初有三个元素的名单开始了,那么你撞了你的敌人数到6,而不扩展列表。这会导致更新循环在列表末尾运行,因为它试图更新列表的末尾。当你增加敌人时,你还需要将新值附加到你的列表中,以便再增加3个条目。要扩展已有的列表,请使用name_of_your_list.append(new_value)

+0

如何随时增加列表大小,对不起,我不知道。 – ErHunt 2012-04-28 21:43:29