为什么这个if语句无法正常运行

时间:2014-02-20 16:21:14

标签: java android random libgdx

public void chooseLane() {

    int lane = MathUtils.random(1, 3);
    System.out.println(lane);
    spawnCar();

}

public void spawnCar() {

    if(lane == 1){
        batch.begin();
        batch.draw(carsb, 0, 0);
        batch.end();
        System.out.println("testing");

    }

chooseLane()中打印出车道的int(设置为随机并且每秒打印一次未显示)但是lane == 1时它没有完成spawnCar方法。有什么帮助吗?

3 个答案:

答案 0 :(得分:2)

lane方法之外声明chooseLane()变量。因为,您将lane变量声明为chooseLane()的局部变量,这就是为什么无法在chooseLane()方法之外访问它。

int lane;

public void chooseLane() {

    lane = MathUtils.random(1, 3);
    System.out.println(lane);
    spawnCar();

}

public void spawnCar() {

    if(lane == 1){
        batch.begin();
        batch.draw(carsb, 0, 0);
        batch.end();
        System.out.println("testing");

    }
}

答案 1 :(得分:1)

那是因为你有变量lane

的不同实例
int lane = MathUtils.random(1, 3);

此处lane正在重新定义。只需从该行中删除int

答案 2 :(得分:1)

您在lane中设置的chooseLane以及您在spawnCar内进行比较的lane不一样。您可以向spawnCar添加一个参数,避免保留public void spawnCar(int lane) { if(lane == 1){ batch.begin(); batch.draw(carsb, 0, 0); batch.end(); System.out.println("testing"); } 类成员

{{1}}