2014年6月7日

libtcod + pythonで日本語を表示

libtcodDoryen Library)はローグライクゲームを簡単に開発できるC/C++/Python向けの海外製ライブラリです。今回はPythonからlibtcodを用いて日本語を表示してみます。他の言語でも同様にできると思います。

まずはこちらからlibtcod-1.5.2-mingw32.tar.gzをダウンロードします。安定版は1.5.1ですが、1.5.2でキー入力についてのバグが修正されているので、1.5.2をおすすめします。そしてこれを展開します。

適当な所に新しいフォルダ(例えばtest)を作り、libtcod-mingw.dllSDL.dll、Pythonフォルダ内のlibtcodpy.pyを入れます。

次にこちらのRawボタンのリンク先を保存してfont.pngをダウンロードします。これもtestフォルダに入れます。

testフォルダ内にpythonスクリプト(例えばtest.py)を作成します。こちらのチュートリアルを参考に、以下のようにプログラムします。これをutf-8で保存します。

# -*- coding: utf-8 -*-
import libtcodpy as libtcod
 
#actual size of the window
SCREEN_WIDTH = 30
SCREEN_HEIGHT = 30
 
LIMIT_FPS = 20  #20 frames-per-second maximum
 
 
libtcod.console_set_custom_font('font.png', libtcod.FONT_LAYOUT_ASCII_INROW, 32, 2048)
 
libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'python/libtcod tutorial', False)
 
libtcod.sys_set_fps(LIMIT_FPS)
 
while not libtcod.console_is_window_closed():
 
    libtcod.console_set_default_foreground(0, libtcod.white)
 
    libtcod.console_put_char(0, 1, 1, ord(u'試'), libtcod.BKGND_NONE)
    
    libtcod.console_print(0, 1, 2, u'例えばこのように日本語が表示できます')
 
    libtcod.console_flush()

test.pyを起動すると日本語が表示されるはずです。(ただしサンプルプログラムですのでクラッシュします。)

前述したチュートリアルは英語ですが、分かりやすいので読んでみるとためになるかもしれません。なお、ここで紹介した各リソースのライセンスは自己責任で確認して下さい。私は、libtcodがBSDライセンス、font.pngがGPL、チュートリアルのコードがPublic Domainのような気がしますが、保証はできません。

※当然のことながら、これらの作業をする前にPythonをインストールしてください。

(参照)UnicodeのタイルセットをPython3とPillowで作った(仮)