自機が画面の外に出るのを防ぐ


【自機が画面の外に出るのを防いでみる】
これまでのプログラム(If.java, Graphic.java, Graphic2.java)では,矢印キーを押すことで自機を自由に
移動させることができた。しかし,うっかりすると画面の外に自機が出て行ってしまい,そのまま行方不明に
なってしまう可能性もある。

そこで,if-else文を使って,自機が画面の外に出て行くのを防いでみよう。


■手順0:あらたなサンプルプログラムを実行してみよう。

  ここで解説したように,実行の構成を
     ・プロジェクトを「DxLibGame」
     ・メインクラスを 「IfElse」
   にして実行してみよ。

  実際に,矢印キーでいくら自機を動かしても画面の外には出て行かないようになっていることが確認できる。

  ソースコード IfElse.java の内容は以下の通り。

IfElse.java (緑色の部分が Graphic2.java に追加・変更を加えた箇所)
ifelse.gif

【解説】

・前述したように,今までのプログラムだと矢印キーを押しっぱなしにすると自機キャラクタが
 画面の外に出て行ってしまう 。自機キャラクタが画面の外に出ていかないようにするのに,
 if-else文を利用できる(上図①)。

・下図は,画面の上下左右いっぱいに自機のグラフィックが寄った状態を表している。
 グラフィックを描写するときには,画像の左上の座標を指定することを思い出そう。
 つまり,下図の赤い点の座標(図では?となっている)を考えると良い。




まず,画面の左右に自機がはみ出ないようにしてみよう。考え方を下図に示す。

horizontal_limit

次に,画面の上下に自機がはみ出ないようにしてみよう。考え方を下図に示す。

vertical_limit


これらの処理を Graphic2.java に組み込んだのが, IfElse,java である。


次へ進め