ボスを作ってみよう(攻撃編)

オリジナルの攻撃を作る上で必要なことを考えていきましょう。
サンプルのレーザー光線を例に一緒に見ていきましょう。


サンプルのレーザー光線の動作原理

サンプルのレーザー光線は、showRect()メソッドを用い、長方形を画面上に描画し、
その長方形の範囲にまさおがいると死ぬという原理になっています。
この長方形の開始座標は関数が呼び出される度に変化するので、動いているように見えます。


図形描画の座標

またしてもこいつが厄介です。図形描画メソッドで使用する座標はアプレット画面の座標です。
と言うことでまたしても座標について見ていくことにしましょう。


これはゲーム上の座標ではなく、アプレット画面の座標なので、
ゲーム上の座標を与えると、画面内に描画されないことがあります。
ちなみに左上端がx,y座標ともに0です。
アプレット画面の座標ということで
x座標は最大511(横サイズ512)
y座標は最大319(縦サイズ320)
です。
動かないボスの場合には固定位置でも構いませんが、動く場合にはボスの位置によって座標を取得しないといけません。
よってドット単位の座標をブロック単位の座標に変換したのと同じように、変換しましょう。
変換式は以下の通りですが、今回はサンプル5を例にしているので、

laser_x = boss_x;

…

x = laser_x - Applet1.getViewX();
y = boss_y -Applet1.getViewY();

…

Applet1.showRect(time,x,y,haba,takasa);
要するに「ゲーム上のドット単位の座標からgetViewX()かgetViewY()で得られた値を引いて」やればいいです。
サンプルではx,yの部分は右辺がそのまま書かれています。(つまり変換部分はそこから持ってきました。)


他には?

まだ自分自身が分かっていないので何とも言えません。
他にもあったら追記します。


だから他になんかねぇのかって聞いてんだけどぉ?

実現したいことをまず考えてみることです。
それが出来たらそれを実現するにはどうしたらよいか考える。
座標計算がいるなら座標計算をしましょう。
あとは各値をどう処理するかを考え、実際にいろんな状況を記述しましょう。
これしか言えません。以上です。