2011年5月6日金曜日

Androidでゲーム シューティングゲームっぽい物。      その1:敵を1体出現させる

タッチした方向に描画した円を発射するを使って、シューティングゲームっぽい物を作ろうと思う。

まずは、敵を1体出現させる。弾を撃ってぶつける対象物がいないと始まらない。

敵クラスを作り、そこで設定する内容は、敵画像の座標値と移動値、それから敵のイメージ変数。

そして、出現させる敵画像はこれ。



ただの丸の画像です。

コンストラクタの設定は、今回1体のみなので、座標値と移動値を設定。
こんな感じ

public Enemy1(MainPanel panel,float x,float y,float move_x,float move_y) {
  ブロックの中身
  this.x=x;
  this.y=y;
  this.move_x=move_x;
  this.move_y=move_y;
  this.panel=panel;

  //イメージの読み込み
  Resources r=panel.getResources();
  img=BitmapFactory.decodeResource(r,R.drawble.test1);

}

移動の仕組みを作る
移動の仕組みを作っているメソッドを作る。
今回の敵は、1体だけ現れる。動きは、画面右端から直進して画面左端へ移動
左端にいったら、右端に又現れる。
弾をぶつけたりするわけではないので、唯ひたすら移動し続ける設定。
こんな感じ
public void move() {
   //移動設定
   x+=move_x;
   y+=move_y;

   //画面左端に行ったら、又右端に戻る
   if(x<0)
      x=533;
}

描画設定
描画は、canvasクラスのdrawBitmap()メソッドを呼び出す
こんな感じ
public void draw(Canvas canvas) {
   canvas.drawBitmap(img,x,y,null);
}

今回の敵クラスの設定はこれで終了。後々、弾と衝突した時の処理や何かを設定していく。

次に、この敵クラスを呼び出すクラスでの設定。

SurfaceViewを使って、今回のゲームっぽい物を作ろうと思っているので、その、SurfaceViewを
設定しているファイルを作成する。
ファイルの名前はMainPanel.java

敵クラスの変数を作成する
変数は
private Enemy1 enemy1;

コンストラクタでの設定
今回、敵クラスの呼び出しには、敵クラスを呼ぶ際には、引数の中に値を入力する必要がある。
こんな感じ
enemy1=new Enemy1(this,533,50,-3,0);
x座標値には、画面の右端の値、y座標には画面上端から50行ったところが、出現するポイントで、
-3は画面右端から画面左端に移動する、0は今回直進させるので、移動値yには0を入れている。


描画を呼び出す。
敵クラスから描画メソッドを呼び出す。
public void draw(Canvas canvas) {
   /*敵クラス*/
   enemy1.draw(canvas);
}

移動設定したメソッドを呼び出す。
こんな感じ
public void move() {
   //敵クラス
   enemy1.move();
}

そして、これらの描画メソッドと移動設定メソッドをrunメソッドにて呼び出す。

その他、シューティングゲーム関連
Androidでゲーム シューティングゲームっぽい物。 その2:敵を1体をランダムに出現させる
Androidでゲーム シューティングゲームっぽい物。 その2-2:敵1体をランダムに出現させる。setSeed()メソッドを使う
Androidでゲーム シューティングゲームっぽい物。  その3:弾と敵の衝突判定
Androidでゲーム シューティングゲームっぽい物。その4:弾と敵が衝突したら、爆発エフェクトを動作させる
Androidでゲーム シューティングゲームっぽい物。 その5:敵の攻撃設定

1 件のコメント:

  1. 現在Android勉強中でゲーム作成を目標にしていたので、
    大変参考になりました。
    ありがとうございました。

    返信削除