1

さて、BallProjectile が障害物に衝突したときにボールが停止して新しいボールを作るようにしようとすると、このエラーが発生します。

// Checks if the ball is colliding with an obstace, then stops it if it is

BallProjectile obstacleCollision = (BallProjectile) getOneIntersectingObject(Obstacle.class);
        if (obstacleCollision != null)
        {
            xSpeed = 0;
            ySpeed = 0;
            myWorld.addObject(new BallProjectile(), 50, 559);
            return;
        }

このエラーを停止するにはどうすればよいですか? 障害物は、ボールの邪魔になるように作成された円であることに注意してください。

4

1 に答える 1

0

提供されたコードでキャストを行っている唯一の場所は次のとおりです。

BallProjectile obstacleCollision = (BallProjectile) getOneIntersectingObject(Obstacle.class);

だから私はそれがあなたの問題があるところだと思います。このメソッドの戻り値は次のようにキャストできないようですBallProjectile

編集:

衝突を確認するには、次のいずれかを実行できます。

Obstacle obstacleCollision = (Obstacle) getOneIntersectingObject(Obstacle.class);
if(obstacleCollision != null) {
   //do your things here
}

また

Actor obstacleCollision = getOneIntersectingObject(Obstacle.class);
if(obstacleCollision != null) {
   //do your things here
}

どちらのアプローチも同じように機能するはずです

于 2014-11-15T01:24:34.170 に答える