ベクトルや傾きの表現法
シューティングで割と用いられる技法です。右を押した時は右に、左を押した時には左に傾く様にします。
ここではint型変数のフラグで表現する方法を説明します。
キー操作時、入力されるとそのボタンを覚えるフィールドlrを作ります。
private int lr = 0;
デフォルトは0です。そして、操作関連の部分にlrの値を動かす文を追加します。
if ((nKeyState & 1 << Display.KEY_LEFT) != 0) {
  mex--;
  lr = -1;
} else if ((nKeyState & 1 << Display.KEY_RIGHT) != 0) {
  mex++;
  lr = 1;
} else {
  lr = 0;
}

何も押さない時は自動的に0に戻る様にしておくのがポイントです。
次にlrによってグラフィックが変化するif〜else if文を組みます。
if(lr == -1) {
  g.drawString("\", mex, mey);
} else if(lr == 1) {
  g.drawString("/", mex, mey);
} else {
  g.drawString("|", mex, mey);
}
これでボタンに対応した傾斜が表現出来ました。lrの値が0の時は真っ直ぐに向き直す点も確認して下さい。
inserted by FC2 system