有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物

好的,当我试着去做的时候,我得到了这个错误,当抛射物与障碍物碰撞时,球停下来,产生一个新的障碍物

// 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;
        }

如何停止此错误?请注意,障碍物只是一个圆圈,用来阻挡球


共 (1) 个答案

  1. # 1 楼答案

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

    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
    }
    

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