0

何かに困っていることは、とても簡単なことです。

特定のゲーム ティックで敵 (スプライト) がゲーム画面に入る単純なゲーム (pygame を使用) を作成しています。すべての敵を管理するには、テキスト ファイルを作成する方が簡単で、それをリストに読み込むことができると考えました。

私のファイル「heli.txt」が含まれている場合:

10 660 130 1
10 660 350 2

プログラムで、特定の x、y で 10 番目のティックに 2 つの敵を追加し、画面の特定のパターンに従うようにします。

これは私が行くものです:

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']]

2番目の敵に使用している現在の方法は次のとおりです。

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

そして、敵が追加されると、これを維持するのが非常に難しくなります。さらに、さまざまな敵の種類を追加し始めると.

基本的に、私はゲームがティックごとにリストをループし、現在のティックがいずれかの行の最初のパラメーターと一致するかどうかを確認し、一致する場合はその敵を追加します。ただし、ここでは正しい構文に少し固執しています (値は整数ではなく文字列のように見えるため、値にも問題があるように感じます)。

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

0

値を int にするには:

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 に答える