多くの人と同様に、私はPythonでlibtcodを使ってroguelikesに関するチュートリアルを行っています。 http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_3PythonのLibtcodアクセス違反エラー
最終的にはすべてのコマンドが実行されていましたが、特定のコマンドでエラーが発生しました。これを修正する方法や正確に何が間違っているのかわかりません。チュートリアルで同じコマンドを使用しているように見えますが、私のコードは文字通り同一であり、著者が提供するダウンロードリンクを使用しています。私は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)
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)
を呼び出しているときに問題がrenderall関数でありますライブラリ関数
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とともに私のプロジェクトフォルダにあります。すべて64ビットで、Pythonと64ビットのWindowsのPyCharm IDEを含みます。32ビット前に試してみると、SDL2.dllは見つかりません。すでに自分のものを修正しました。今私はエラーの内容とチュートリアルXXの中でそれを書き直す方法を理解できません。申し訳ありませんが、ここに投稿して、別のスレッドで正確な解決策を見ていないと、SDLの問題と32対64ビットに関するいくつかの問題がありました。
pythonでlibtcodpyを正しく設定する方法については、完全に詳細な難解なyoutubeビデオを見つけてください。あるいは、私が何をしゃべっているのかを教えてください。