0

形状 (長方形) を含む配列があり、それが配列内の形状と衝突したときに通過できないようにしたい別の形状があるため、形状の配列は基本的に、形状ができる壁の配列です。通過します。これが私が現在それをやろうとしている方法です(Wキーの例):

private boolean CanMove() { 
    for(Shape wall : mazeWalls) {
        if(character.intersects(wall)) 

            return true;

    }
    return false;
}

if (keyInput.isKeyDown(keyInput.KEY_W)) {
        for(int i = 0; i <= MoveSpeed; i++) {
            char_y--;
              if(CanMove()) {
                char_y++;
                break;
            }
        }
    } 

形状の配列は非常に小さいので、すべてをチェックしています。今は停止しますが、壁に引っかかって、バックアウト/他の方向に進むことができません。壁に引っかかるだけです。誰かがこれを行うためのより良い方法を持っている場合、私は Slick と LWJGL またはソリューションを使用しています。ありがとう。

4

1 に答える 1

0

これを行う一般的な方法は、それが起こる前の一歩を数えてから、動けるか動けないかを判断することです。

したがって、動きをシミュレートし、交差を数えます。それが真であれば、キャラクターと一緒に移動しません。

于 2013-10-10T03:28:56.743 に答える