- ベクトルや傾きの表現法
- シューティングで割と用いられる技法です。右を押した時は右に、左を押した時には左に傾く様にします。
- ここでは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;
}
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);
}
g.drawString("\", mex, mey);
} else if(lr == 1) {
g.drawString("/", mex, mey);
} else {
g.drawString("|", mex, mey);
}
- これでボタンに対応した傾斜が表現出来ました。lrの値が0の時は真っ直ぐに向き直す点も確認して下さい。