0

.txt ファイルの特定の行が == "true" であるかどうかを確認する if ステートメントがありますが、正しく機能していないようです。

configfile=open("FirstGameConfig.txt")
config_lines=configfile.readlines()
speed_of_object=float(config_lines[5])
acceleration_of_object=float(config_lines[7])
show_coordinates=str(config_lines[9]) #####
acceleration_mode=str(config_lines[11])
configfile.close()

これはすべて上にあり、show_coordinates 文字列はここで誤動作しているようです:

font=pygame.font.Font(None, 40)
    if acceleration_mode=="true":
        speedblit=font.render("Speed:", True, activeblitcolor)
        screen.blit(speedblit, [0, 0])
        rectyspeedtext=font.render(str(abs(rectyspeed)), True, activeblitcolor)
        screen.blit(rectyspeedtext, [100, 0])
    if show_coordinates=="true":
        rectycoord=font.render(str(recty), True, activeblitcolor)
        screen.blit(rectycoord, [360, 570])
        rectxcoord=font.render(str(rectx), True, activeblitcolor)
        screen.blit(rectxcoord, [217, 570])
        coordblit=font.render("Coordinates: x=              y=", True, activeblitcolor)
        screen.blit(coordblit, [0, 570])

スクリプトは、アクセラレーション モードがオンになっているかどうかを確認します。Acceleration_mode の値が true の場合、オブジェクトの速度が画面の左上隅に表示されます。activeblitcolor は既に定義されているので問題ありません。if show_coordinates ステートメントの下にあるものは、私が持っている.txtファイルの値が「true」であると仮定して、画面の左下隅にオブジェクトの座標を出力します。

したがって、.txt ファイルで show_coordinates が true に設定されていても、このステートメントがスキップされるという問題があります。加速モードも.txtファイルにあり、完全に機能します。Acceleration_mode が true かどうかをチェックするステートメントが完全に機能する場合、show_coordinates のステートメントが同じように機能しないのはなぜですか? if ステートメントを削除しても、それに該当するコードをスクリプトに保持すると、座標は、show_coordinates == "true" の場合と同様に、画面の左下隅に出力されます。

確かに、.txt ファイルの正しい行に「true」があります。「print(show_coordinates)」を追加すると、「true」が出力されます。スクリプトは show_coordinates の値が true であることを認識しますが、if ステートメントはそうではありませんか? どんな助けでも大歓迎です!私は初心者です。

4

1 に答える 1