PythonでDXライブラリを利用してみた

後でググる既にやっている人がおられましたが、これ結局移植しちゃってますよね。
今回はDXライブラリの作者から配布されているC#用パッケージを素で利用するだけというお手軽版です(新たにライブラリとか作らなくてもDxLibのC#用パッケージとPythonさえあれば動く)。

通常のDXライブラリは.lib形式となっているのでPythonから直で利用できません。そこでDXライブラリの「VisualC# 用パッケージ」を見てみると、"DxDLL.cs", "DxLib.dll"...などが入っています。
PythonからDLLの関数は簡単に呼び出せるので、Python 3.4.0、DXライブラリ Ver3.12a、64bit環境で検証。DxLib_x64.dllをPythonスクリプトと同じフォルダにおいてやります。

  • DxLib_text.py
import sys
from ctypes import *

if __name__ == '__main__':
    dxlib = cdll.DxLib_x64

    dxlib.dx_ChangeWindowMode(1)  # TRUE = 1
    if dxlib.dx_DxLib_Init() == -1:
        sys.exit()

    dxlib.dx_SetDrawScreen(-2)  # DX_SCREEN_BACK = -2
    while dxlib.dx_ProcessMessage() == 0:
        dxlib.dx_ClearDrawScreen()

        dxlib.dx_DrawBox(100, 100, 200, 200,
            dxlib.dx_GetColor(255, 255, 255), 0)  # FALSE = 0

        dxlib.dx_ScreenFlip()

    dxlib.dx_DxLib_End()

動きました。さらに拡張子を.pywにしてやれば、コンソール画面が出ないのでアプリケーションっぽくなります。
f:id:jptomoya:20140630104518p:plain