1

そのため、多くの人と同じように、Python で libtcod を使用してローグライクのチュートリアルを行っています。 http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_3

最終的にすべてを実行しましたが、特定のコマンドでエラーが発生し、修正方法や正確な問題がわかりません。同じコマンドを使用してチュートリアルで動作しているように見えます。私のコードは、私が知る限り文字通り同一であり、作成者が提供するダウンロード リンクを使用しています。libtcodpy、dundalk12x12_gs_tc.png、libtcod.dll、および SDL2.dll がすべてプロジェクト フォルダーにあります (コピーして貼り付けます)。残りの .py を見る必要がある場合は、チュートリアル パート 3 のダンジョン生成のコードを参照してください。それは私のものと同じです。私が見ることができないのは彼の libtcodpy フォルダーだけですが、それは彼のダウンロード リンクです。エラーは次のとおりです。

C:\Python27\python.exe C:/Users/Chris/PycharmProjects/untitled/KingKong.py
Traceback (most recent call last):
  File "C:/Users/Chris/PycharmProjects/untitled/KingKong.py", line 233, in     <module>
render_all()
  File "C:/Users/Chris/PycharmProjects/untitled/KingKong.py", line 172, in render_all
libtcod.console_set_char_background(con, x, y, color_dark_wall, libtcod.BKGND_SET )
  File "C:\Users\Chris\PycharmProjects\untitled\libtcodpy\__init__.py", line 822, in console_set_char_background
_lib.TCOD_console_set_char_background(con, x, y, col, flag)
WindowsError: exception: access violation reading 0x0000000000640000
24 bits font.
key color : 0 0 0
24bits greyscale font. converting to 32bits

Process finished with exit code 1

問題は、libtcod.console_set_char_background(con, x, y, color_dark_wall, libtcod.BKGND_SET) を呼び出すときの renderall 関数にあります。

def render_all():
global color_dark_wall, color_light_wall
global color_dark_ground, color_light_ground

# Go through all tiles, and set their background color
for y in range(MAP_HEIGHT):
    for x in range(MAP_WIDTH):
        wall = map[x][y].block_sight
        if wall:
            libtcod.console_set_char_background(con, x, y, color_dark_wall, libtcod.BKGND_SET )
        else:
            libtcod.console_set_char_background(con, x, y, color_dark_ground, libtcod.BKGND_SET )

# Draw all objects in the list
for Object in objects:
    Object.draw()

# Blit the contents of "con" to the root console
libtcod.console_blit(con, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0)

これがライブラリ関数です

def console_set_char_background(con, x, y, col, flag=BKGND_SET):
    _lib.TCOD_console_set_char_background(con, x, y, col, flag)

libtcodpy は、libtcod.dll および SDL2.dll とともに、私のプロジェクト フォルダーにあります。Python と 64 ビット Windows 10 上の私の PyCharm IDE を含め、すべて 64 ビットです。32 ビット以前に試してみましたが、SDL2.dll が見つかりません。すでに自分で修正しました。今、エラーの原因と、チュートリアル XX 内でそれを書き直す方法を理解できません。ここに初めて投稿して申し訳ありませんが、別のスレッドで正確な解決策が見られませんでしたが、SDLの問題と32ビット対64ビットに関して他にいくつかありました。

Python で libtcodpy を適切にセットアップする方法について、完全に詳細で遅滞のない YouTube ビデオを見つけるか、私が何を台無しにしているかを教えてください。

4

2 に答える 2