1

リストを使用して複数の画像を画面にブリットし、座標を個別のリストに追加しようとしています。

リストでは、写真の名前で出力したいのですが、弾丸が画像と衝突すると、リストから削除して画面から削除します。しかし、まだ衝突検出を行っていません。

また、これらの関数を使用して実行すると、プログラムがクラッシュするだけで、エラーなどはありません。

#create enemies
lvl1 = [[alien2],[alien2],[alien1]]

def create_alien_list(level_list):
    x = 0
    y = 0
    i = 0
    alien_w = 0
    alien_h = 0
    for row in level_list:
        x = 10
        for col in row:
            if col: level_list[i].append([x,y])
            x += alien_w + 10
        i+=1
        b_y += alien_h + 5

def draw_aliens():
    i = 0
    for each in alien_list:
        screen.blit(level_list[i],(level_list[i][1],level_list[i][2]))
        i+=1
4

1 に答える 1

2

「draw_aliens」関数は、blitメソッドの最初の引数として画像を渡していないはずです。ここに添付されているコードを見ると、`level_list[i]が画像のリストであることがわかります。したがって、これが文字起こしエラーではない場合は、ブリッティングラインを次のように変更してください。

screen.blit(level_list[i][0],(level_list[i][1],level_list[i][2]))代わりは。実際にエラーメッセージが表示されない場合は、プログラムをセグフォールトしているPygameのブリットコードのパラメータ検証に問題がある可能性があります。

于 2012-09-24T04:25:12.413 に答える