2012-08-07 35 views
0

遇到问题非常简单。将文件中的参数添加到列表中,然后使用列表

我正在制作一个简单的游戏(使用pygame),敌人(精灵)在特定的游戏节拍处进入游戏画面。我认为编写一个文本文件可以更容易地管理所有可以被读入列表的敌人。

如果我的文件“heli.txt”载:

10 660 130 1 
10 660 350 2 

我希望程序在一定的x,y 10日蜱添加两个敌人,然后按照屏幕上特定的模式。

这就是我与去:

fh = open("heli.txt"); 

heliList = [] 
for line in fh.readlines(): 
    y = [value for value in line.split()] 
    heliList.append(y) 

fh.close() 

这似乎是适当的填充列表:

>>> print (heliList) 
[['10', '660', '130', '1'], ['10', '660', '350', '2']] 

我使用的第二个敌人目前的方法是:

if timer.returnTick() == 10: 
    heli = Heli(660, 350, 2) 

随着更多的敌人被添加,这变得非常难以维持。另外当我开始添加各种敌人类型。基本上,我希望游戏能够通过列表遍历每个勾号,看看当前的勾号是否与任何一行的第一个参数匹配,如果是,则添加该敌人。然而,我有点卡在正确的语法在这里(我觉得可能也有一个值的问题,因为他们似乎是字符串,而不是整数)。

任何帮助表示赞赏,谢谢。

回答

0

使值到整数:

fh = open("heli.txt"); 

heliList = [] 
for line in fh.readlines(): 
    y = [int(value) for value in line.split()] #added "int()" 
    heliList.append(y) 

fh.close() 

,一旦你有敌人的所有清单,检查他们的滴答做这样的事情:

tick = 0 
while True: 
    for enemy in enemylist: 
     if enemy[0] == tick: 
      DO_YOUR_CODE 
    tick += 1 
    #dont forget to add an exit to this loop 
+0

非常感谢。这是我想要的简单解决方案。 – pb14 2012-08-07 15:32:25

+0

请将此答案标记为已接受。那是公约。 – 2012-08-07 15:33:07

相关问题