RGSS3の組み込みクラスだけでは、できない処理がある。
例えばマウスの座標を取得したいなど。
その場合、dllを作成してRubyからそれを叩く必要がある。
プロジェクトはC++の「Win32プロジェクト」。
C#でdllを作成したいところだが、Rubyからマネージドなdllはコールできないので、C++を選択。
特定のウィンドウのマウス座標の取得は少し面倒だが、今回の趣旨ではないので、割愛。需要があったら別途書きます。
dllは以下のように2つのメソッドを持つものとします。
EXPORT int getMouseXpos(); EXPORT int getMouseYpos();
ビルドで生成したdllをRPGツクール側のSystemフォルダ以下に配置します。
RGSS3側でdllの読み込みと、メソッドの呼び出しを記述します。dllはhoge.dllというファイル名とします。
#dll読み込み xPosAPI = Win32API.new('System/hoge', 'getMouseXpos', nil, 'i') yPosAPI = Win32API.new('System/hoge', 'getMouseYpos', nil, 'i') #メソッド呼び出しのサンプル while 1 do x = xPosAPI.call() y = yPosAPI.call() p "X = " + x.to_s + "/ Y = " + y.to_s end
サンプルはループを抜けずにずっとマウス座標を取り続けるので、実際に使う場合は用途に合わせて修正してください。
Please give us your valuable comment