Java ゲーム プログラミング

シューティングゲームを作ってみようの連載2回目です。連載1回目の雛形クラスを初期表示位置を指定できるように改造します。



自機の初期表示位置

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。

前回作った自機クラスでは、初期表示位置が左上なので、今回は、初期表示位置を指定できるように改造します。 それでは、ちょっとプログラムを書いてみましょう。赤字の部分が前回の自機クラスから追加になった部分です。
■自機クラス 初期表示位置指定改造 (Gun.java)
  1. public class Gun {
  2.   private Polygon p;
  3.   public Gun() {
  4.     int[] xlist = {  0,  0,  8, 13, 18, 26, 26,  0 };
  5.     int[] ylist = { 15,  5,  5,  0,  5,  5, 15, 15 };
  6.     p = new Polygon(xlist, ylist, xlist.length);
  7.   }
  8.   public Gun(int x, int y ) {
  9.     this();
  10.     for (int i=0; i < p.xpoints.length; i++ ) {
  11.       p.xpoints[i] += x;
  12.       p.ypoints[i] += y;
  13.     }
  14.   }
  15.   public void draw(Graphics2D g2) {
  16.     g2.setColor(Color.YELLOW);
  17.     g2.fill(p);
  18.     g2.setColor(Color.BLACK);
  19.     g2.draw(p);
  20.   }
  21.   public void moveLeftGun() {
  22.   }
  23.   public void moveRightGun() {
  24.   }
  25.   public void setGun(){
  26.   }
  27. }

11行目で初期表示位置を指定できるようにint型の変数xとyを コンストラクター[注1] に与えられるようにしています。
12行目でこのクラス自身を呼び出しています。引数を指定してないので5〜9行目の引数なしのコンストラクターが実行されます。 Polygonクラスのオブジェクト変数pに初期値が設定されるのでPolygonオブジェクトのx座標の配列であるxpointsの全てのデータに初期位置指定する x座標の値を加算します。(14行目) y座標も同様にy座標の配列であるypointsにy座標の値を加算していきます。(15行目)
下の図は、自機の各点にx、y座標を加算していくイメージを表したものです。
これで、自機の初期表示位置を指定できるようになりました。アプレットクラスも自機オブジェクト生成部分を改造します。 オブジェクト生成時に初期表示したいx、y座標値を与えてあげます。
赤字部分が前回からの変更点で自機の表示位置を指定しています。
■アプレットクラス 自機オブジェクト表示位置指定改造 (ShootGame.java)
  1. package sample.game;
  2. import java.awt.Graphics;
  3. import java.awt.Graphics2D;
  4. import javax.swing.JApplet;
  5. public class ShootGame extends JApplet {
  6.   public Gun gun = new Gun(87, 180);
  7.   public void paint(Graphics g) {
  8.     Graphics2D g2 = (Graphics2D)g;
  9.     g2.clearRect(0,0,getWidth(), getHeight()); 
  10.     gun.draw(g2);
  11.   }
  12.   public void update(Graphics g){
  13.     paint(g);
  14.   }
  15. }

これを実行すると下のような感じになります。
指定位置に表示されているのがわかると思います。

※アプレットの表示領域は、width="200"、height="200"で設定




最終更新日:2019/02/13

2015-03-01からの訪問者数
  4506 人