キーボードからの入力にはKeyクラスを使う。KeyクラスにはKey1-Key4の4種類ある。
akirameiさんのページ(はじめてのYaneSDK.NETその2 - 匣の向こう側 - あまりに.NETな)を参考にラインを動かすプログラムを作ってみた。
Key1 key = new Key1();
int PosX = 0;
int PosY = 0;
// TimerのTickイベント
private void OnTick(object sender, EventArgs e)
{
// キー情報の更新
key.Update();
int dx = 0;
int dy = 0;
if (key.IsPress(1)) dy = -1; // 上
if (key.IsPress(2)) dy = +1; // 下
if (key.IsPress(3)) dx = -1; // 左
if (key.IsPress(4)) dx = +1; // 右
if (key.IsPress(5)) // スペース
{
dx *= 3;
dy *= 3;
}
PosX += dx;
PosY += dy;
// ここで(PosX,PosY)の座標でラインの描画
}カーソルキーで上下左右に移動し、スペースキー同時押しで3倍の移動。
akirameiさんのページでも書かれているように確かに同時押し3つ目のボタンが反応しないことがある。スペースキーでの加速が左上と左下の場合は反応するんだけど、右上と右下の場合は反応しない。SDLの問題なのかWindowsのキーボードの問題なのか。
ジョイスティックの場合はどうなんだろう。今度ジョイスティックを買ってきて試してみよう。