0

遇到问题是非常直截了当的。

我正在制作一个简单的游戏(使用 pygame),其中敌人(精灵)在某个游戏时间点进入游戏屏幕。我认为编写一个文本文件会更容易管理所有可以读入列表的敌人。

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

10 660 130 1
10 660 350 2

我希望程序在第 10 个刻度上在某个 x、y 处添加两个敌人,并按照屏幕周围的特定模式。

这就是我要做的:

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)

随着更多敌人的加入,这变得非常难以维持。此外,当我开始添加各种敌人类型时。

基本上,我希望游戏在每个滴答声中循环遍历列表,查看当前滴答声是否与任何行的第一个参数匹配,如果匹配,则添加该敌人。但是,我在这里有点坚持正确的语法(我觉得这些值也可能存在问题,因为它们似乎是字符串而不是整数)。

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

4

1 回答 1

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
于 2012-08-07T09:40:15.183 回答