0

わかりましたので、画面に描画する必要があるすべてのタイルを含む ArrayList があり、矢印キーで移動するプレーヤーがありますが、これを使用して衝突検出を実装する方法がわかりません。効率的でしょうか?現在のタイルがいっぱいになっているかどうかを確認し、そうであれば停止します。ゼロからゲームを作成するのはこれが初めてなので、どんな助けも大歓迎です!

編集: タイルは基本的に ArrayList に保持されている 32x32 の画像です。y 軸の衝突を手伝ってくれれば、残りは問題ありません。タイル クラスには、x、y、およびタイル タイプが含まれます

EDIT2:まだ何も試していません。どこから始めればよいかわかりませんが、基本的にはタイルに何らかの衝突が必要で​​す。か否か

4

2 に答える 2

1

以下に、跳ねるボールの例を示します。これは、JPanel の終了をテストし、何かを行います。

  //x = X-Axis Location //This tests for a collision of the JPanel on the left side or the right side
public boolean isLeavingSideToSide(JPanel jp)
{
    if( x <=0 || x+ width >= jp.getWidth())
    {
        BounceEvent be = new BounceEvent(this);
        notifyListeners(be);            
        return true;
    }
    else
        return false;
}

BounceEvent は、bounced メソッドを呼び出す notifyListener を許可するために作成されます。

public void notifyListeners(BounceEvent be)
{
    for(BounceListener bl : listeners)
    {
        bl.bounced(be);
    }
}

My Bounced メソッドはボールの色を変更します (何らかのアクションを実行します)

public void bounced(BounceEvent be) {
    Ball b = be.getBall();
    Color c = b.getColor();
    int x = 256;
    int newColor1 = (int) (Math.random() * x);
    int newColor2 = (int) (Math.random() * x);
    int newColor3 = (int) (Math.random() * x);
    b.setColor(new Color(newColor1,newColor2,newColor3));
}

うまくいけば、これはあなたが始めるのに役立ちます.

于 2013-06-14T18:27:30.733 に答える