将文件中的参数添加到列表中,然后使用lis

2024-04-24 22:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

遇到麻烦是很直截了当的。你知道吗

我正在制作一个简单的游戏(使用pygame),其中敌人(精灵)在某个特定的游戏时间进入游戏屏幕。我想写一个文本文件会更容易管理所有的敌人,然后可以读入一个列表。你知道吗

“如果我的文件”直升机.txt“包含:

10 660 130 1
10 660 350 2

我想让程序在第十个点在某个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)

随着更多敌人的加入,这一点变得很难维持。更重要的是,当我开始添加各种类型的敌人。你知道吗

基本上,我想让游戏在列表中循环每个勾号,看看当前勾号是否匹配任何一行的第一个参数,如果匹配,添加敌人。但是,我在这里有点拘泥于正确的语法(我觉得值可能也有问题,因为它们似乎是字符串而不是整数)。你知道吗

谢谢您的帮助。你知道吗


Tags: intxt游戏列表for屏幕valueline
1条回答
网友
1楼 · 发布于 2024-04-24 22:27:45

要将值转换为整数:

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

相关问题 更多 >