好吧,所以当我尝试使其出错时,我会收到此错误,以便当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;
        }


如何停止此错误?请注意,障碍物就是这样一个障碍物,该障碍物是为了挡住球而创建的。

最佳答案

在提供的代码中进行转换的唯一位置是:

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
}


两种方法应该以相同的方式工作

10-08 19:25