キーボードからの入力には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のキーボードの問題なのか。
ジョイスティックの場合はどうなんだろう。今度ジョイスティックを買ってきて試してみよう。