1

そこで、Spriteという名前のクラスを作成しました。スプライトクラスの多くを簡単に制御できるようにしたいのですが、その方法がわかりません。arraylistについて聞いたのですが、使い方がわかりません。私はそれを何度もグーグルで検索しましたが、数日間、良い簡単なチュートリアルを見つけることができませんでした。基本的には、5個程度のスプライトを作成して、その衝突を確認できるようにしたいと思います。衝突をチェックするためにRectを使用しています。これが私が衝突をチェックする方法です:

if(Rect.intersects(sprite.dst, floor))

それは機能しますが、複数のスプライトを制御し、それらの衝突をチェックして、衝突した場合はそれらを削除したいと思います。良いチュートリアルやアイデアはありますか?助けてください。私は私の質問について十分に明確であったことを願っています..ありがとう!

私はそれを行う方法を見つけましたが、今はスプライトのランダムなy位置を作成するのに問題があります:

  public void rockUpdate(Canvas canvas){
    int y = rand.nextInt(canvas.getHeight()-doodle.getHeight()) + 1;
            int x =canvas.getWidth();

        rockSprites.add(new Sprite(GameSurface.this, doodle, 4, 1, x, y));
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        el++;

    }
4

1 に答える 1

3

このような意味ですか?

List<Sprite> spriteList = new ArrayList<Sprite>();

spriteList.add(new Sprite());

// (etc)

List<Sprite> spriteListForLoop = new ArrayList<Sprite>(spriteList);
for (Sprite sprite: spriteListForLoop)
{
    if (Rect.intersects(sprite.dst, floor))
    {
        spriteList.remove(sprite);
    }
}

そのようなものは非常に基本的なJavaです...基本的なJavaチュートリアルで見つけることができるはずです。これがゲームの場合は、もっと洗練されたものを見つけたほうがいいでしょう。たとえば、スプライトが移動するたびにその特定のスプライトの交差をチェックするスプライトオブジェクトのメソッドなどです。

于 2011-11-03T01:45:23.630 に答える