Java I';我在收集5枚硬币和成功前往下一个世界方面遇到了困难

Java I';我在收集5枚硬币和成功前往下一个世界方面遇到了困难,java,greenfoot,Java,Greenfoot,所以我们最近在大学里开始编码,我在绿足游戏中遇到了麻烦。通常情况下,我应该能够在1级收集5枚硬币,然后进门,进入2级,以此类推。。。这是我到目前为止的一段代码: private void collect () { Actor coin = getOneIntersectingObject(Coin.class); if (coin != null) { getWorld().removeObject(coin);

所以我们最近在大学里开始编码,我在绿足游戏中遇到了麻烦。通常情况下,我应该能够在1级收集5枚硬币,然后进门,进入2级,以此类推。。。这是我到目前为止的一段代码:

    private void collect () {
        Actor coin = getOneIntersectingObject(Coin.class);

        if (coin != null) {
            getWorld().removeObject(coin);
            coinsCollected++;
        }
        if (coinsCollected == 5 && fiveCoinsLevel1 == false) {
            if (this.getWorld().getClass() == Level_1.class) {
                getWorld().addObject(new door_temp(), 157, 162);
                fiveCoinsLevel1 = true;
                secondLevel();
                coinsCollected = 0;
            }
        }

        if (coinsCollected == 5 && fiveCoinsLevel2 == false && fiveCoinsLevel1 == true) {
            if (this.getWorld().getClass() == Level_2.class) {
                getWorld().addObject(new door_temp(), 157, 162);
                fiveCoinsLevel2 = true;
                thirdLevel();
            }
        }
    }
之后,我有两种方法将世界设置为2级或3级:

public void secondLevel ()  {
        Actor secondlvl = getOneIntersectingObject(door_temp.class);

        if (secondlvl != null) {
            Greenfoot.setWorld(new Level_2());
        }
    }

    public void thirdLevel ()  {
        Actor thirdlvl = getOneIntersectingObject(door_temp.class);

        if (thirdlvl != null) {
            Greenfoot.setWorld(new Level_3());
        }
    }
现在出于某种原因,当我在一级收集所有5枚硬币并到达门进入二级时,它会直接把我送到三级


感谢所有能帮助我的人:)

移动第三个
收集的硬币
-在检查第二级之前进行检查。代码的问题在于,level2检查设置了参数,使得下面的level3检查也为真,因此立即进入level3。更具体地说,如果
coinsCollected=0,则不会出现这种情况行在
secondLevel()之前或如果您的
coinsCollected==5
检查仅在硬币刚刚收集时运行(即,将其置于
if(coin!=null)
条件),此时这是错误标记的。应该是java,而不是javascriptI我试过你说的@Adder。。。不幸的是没有运气。。。我这样做正确吗?
fiveCoinsLevel1=true;收集的硬币=0;secondLevel();}