Seaside Laboratory

Posts

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

とやると、キー名を含んだ配列リストが出来上がる。

キーコンフィグ可能なゲームを作っている人達はどうやってキー名を取得しているのだろうか…。