タッチした方向に描画した円を発射するを使って、シューティングゲームっぽい物を作ろうと思う。
まずは、敵を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:敵の攻撃設定
現在Android勉強中でゲーム作成を目標にしていたので、
返信削除大変参考になりました。
ありがとうございました。