繁体   English   中英

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

[英]Why is this if statement not functioning correctly

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()它打印出Lane的int(设置为random并每秒打印一次,未显示),但是当lane == 1它不会完成spawnCar方法。 有什么帮助吗?

chooseLane()方法之外声明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");

    }
}

那是因为您有可变lane不同实例

int lane = MathUtils.random(1, 3);

这里的lane正在重新定义。 只需从该行中删除int

您在chooseLane中设置的lane与您在spawnCar中进行比较的lane不相同。 您可以向spawnCar添加参数,避免保留lane类成员

public void spawnCar(int lane) {

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM