Seaside Laboratory

Post

PC 用ゲームのキーコンフィグで表示されるキーの名前

コンシューマー機と違って PC はキーボードが使われるので、キーコンフィグで表示される全てのキー名をプログラム内に持っておかなければならない。キーコードからキーの名前を取得するメソッドを作るために、キー名テーブルを手作業で 9 割方打ち込み終わった頃にふと気がついた。「こんな単調な作業は Perl でやればええやん。」と。ということで、dinput.h からキー名だけ抜き出すスクリプトを作成。

#!/usr/bin/perl

$tab = 2;

open( FILE, 'dinput.h' );
while ( <FILE> )
{
	/^#define\s+DIK_(\w+)\s+0x([0-9A-F]+)/;
	$dik[hex( $2 )] = $1;
}
close( FILE );

for ( $count = 0x00; $count <= 0xff; $count++ )
{
	print "\t" x $tab . "\"$dik[$count]\",\n";
}

カレントに dinput.h を置いて

perl スクリプト名 > keylist.txt

とやると、キー名を含んだ配列リストができあがります。しかし、キーコンフィグ可能なゲームを作る人って、みんなキーテーブルを打ちこんでいるのかな・・・。