2014-11-22 123 views
1

我在这里遇到问题。在游戏开始时,它会询问“准备就绪”,如果您点击它,它会重置所有内容,以防万一游戏出现故障,并且会在游戏开始时(主菜单)弹出用户选择的适当级别。我试图为每个级别制作布尔值,所以我可以说出他或她玩的是什么水平,这是我的尝试,并没有得到运气。布尔逻辑误解

var playingLevel1 = false; 
var playingLevel2 = false; 
$('#level1Button').click(function() { 
    playingLevel1 = true; 
}); 
$('#level2Button').click(function() { 
    playingLevel2 = true; 
}); 
$('#ready').click(function() { 
    if(playingLvl2) { 
    startLvl1(); //and that would reset and start the level one 
    } 
    if(playingLvl2) { 
    startLvl2(); //and that would reset and start the level two 
    } 
}); 

你会认为这将工作?但事实并非如此。也许我不认为我在使用布尔值?

我只是输入了那个示例代码,但它与我原来的代码很相似。

好了,所以我决定用一个整数,但这里仍然无法正常工作是我使用布尔,考虑存储级别数量的整数拿到

var currentLevel = 0; 
    $('#level1').click(function() { 
     currentLevel = 1; 
     $("#mainMenu").hide(); 
     levelOne(); 
    }); 
    $('#level2').click(function() { 
     currentLevel = 2; 
     $("#mainMenu").hide(); 
     levelTwo(); 
    }); 

    function startLvl1() { 
     $("#levelOne").css('margin-top', '-1520px'); 
     $("#player").css('border', 'solid 1px green'); 
     $("#player").css('margin-left', '223px'); 
     $('#levelComplete').hide(); 
     $('#levelOne').animate({ 
      'margin-top': '+=1520px' 
     }, speed); 
     handleCollisions(); 
    } 
    function startLvl2() { 
     $("#levelOne").css('margin-top', '-4560px'); 
     $("#player").css('border', 'solid 1px green'); 
     $("#player").css('margin-left', '223px'); 
     $('#levelComplete').hide(); 
     $('#levelOne').animate({ 
      'margin-top': '+=4560px' 
     }, speed); 
     handleCollisions(); 
    } 
    $('#yes').click(function() { 
     if (currentLevel == 1) {  
       startLvl1(); 
     }else if (currentLevel == 2) { 
     startLvl2(); 
     } 
+1

'$('#ready')。click'中的第一个条件“if”应该是'if(playingLvl1)'并且你有'if(playingLvl2)' – 2014-11-22 02:39:30

回答

2

代替。

var currentLevel = 0; 

$('#level1Button').click(function() { 
    currentLevel = 1; 
}); 
$('#level2Button').click(function() { 
    currentLevel = 2; 
}); 

$('#ready').click(function() { 
    if (currentLevel == 1) 
    startLvl1(); 
    else if (currentLevel == 2) 
    startLvl2(); 
}); 

这应该是正确的做法! :)

+1

哦哇从来没有想到这一点,非常感谢我现在就试试吧! – 2014-11-22 02:41:28

+0

当然@KarinaAyoub。如果您遇到任何困难,请告诉我们。 ':)' – 2014-11-22 02:41:57

+0

嗯,它实际上没有工作 – 2014-11-22 02:48:52

0

布尔变量拼写错误?即,'playingLevel1'是定义的变量,但是你的if语句具有'playingLvl1'。所以,由于该变量没有被定义,它总是假的。 'playingLevel2'也一样。