2

私はJavaでAndroidゲームを開発しています。このゲームでは、ユーザーの指に追従し、毎秒弾丸を発射することになっているスプライトがあります。つまり、毎秒上に移動するビットマップを添付しようとしています。ビットマップは、メインキャラクターのスプライトのx座標とy座標から始まります。一度に複数のミサイルを引くことはできず、その方法についてのアイデアが不足しています。私はたくさんのことを試みました、そして私は本当にいくつかの助けを使うことができました。

ちなみに、私のメインゲームパネルクラスはsurfaceViewを拡張し、SurfaceHolder.Callbackを実装しています。

public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback{

ありがとう!

4

1 に答える 1

3

私が理解している限り、あなたは一度に複数の弾丸を撃つ能力を持ちたいですか?これを行うには、VectorまたはArrayを使用できます。配列を使用すると、表示される弾丸のデフォルトの量を設定でき、ベクトルでは、指が生成できる弾丸をマント弾として持つことができます。

これが私がレーザーを生成するために使用する私のコードです(私は値を配列に保存します)。

public void updatePlayerLaser(boolean shootLaser) {
        // Check if a new Laser should be created
        if(shootLaser == true) {
            if(timeLastCreatedLaser + 100 < System.currentTimeMillis()) {
                timeLastCreatedLaser = System.currentTimeMillis();
                boolean createdNewLaser = false;
                for(int i = 0; i < this.amountOfVisibleLasers; i++) {
                    if(createdNewLaser == false) {
                        if(holderLaser[i].isDisposed()) {
                            this.generateNewLaser(i);
                            createdNewLaser = true;

                        }
                    }
                }
            }
        }

        // Update all the other Lasers
        for(int i = 0; i < this.amountOfVisibleLasers; i++) {
            if(holderLaser[i].isDisposed() == false) {
                holderLaser[i].update();
            }

        }

    }

このコンテキストで配置されているということは、レーザーが停止していることを意味します。したがって、新しいレーザーが古いレーザーをスポットするためのスペースができます。

于 2012-05-19T08:20:50.127 に答える