好吧,所以当我尝试使其出错时,我会收到此错误,以便当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
}
两种方法应该以相同的方式工作