简单等级系统
问题描述:
我会留下一个简单的等级系统。当比分变量达到一定数目将增加敌人(球)&速度(速度),例如:简单等级系统
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
谢谢
答
相反的:
if score == 500:
enemies = 6
velocity = 2
你或许应该有一个increase_difficulty()
方法修改您的跟踪名单,并增加了velocity
值。正如我上面提到的,您还应该使用>=
而不是==
。然后你的游戏循环代码将是:
if score >= 500:
increase_difficulty()
答
的问题是你的代码最初有三个元素的名单开始了,那么你撞了你的敌人数到6,而不扩展列表。这会导致更新循环在列表末尾运行,因为它试图更新列表的末尾。当你增加敌人时,你还需要将新值附加到你的列表中,以便再增加3个条目。要扩展已有的列表,请使用name_of_your_list.append(new_value)
。
+0
如何随时增加列表大小,对不起,我不知道。 – ErHunt 2012-04-28 21:43:29
(不看pastebin :)你的实现和你的错误似乎*根本*发散。检查'positionx'和'positionxmove'的尺寸,看看它们是否相等,然后再尝试类似的东西。 – Makoto 2012-04-27 22:43:53
只要看看你的源代码,你真的需要开始使用类。有很多存储索引数据的列表是不正常的,会导致错误。尝试在游戏中使用实体类。 – 2012-04-27 22:46:52
另外,你应该避免'if score == 500'并使用'if score> = 500'。当你使用平等时,你的难度将永远不会增加,除非用户在游戏循环结束时达到500点。你想要的是一旦用户获得了500点或更多的点数,就可以将其拉高。 – 2012-04-27 22:51:14