2016-04-15 61 views
0

這可能是一個簡單的問題,但我無法正常工作。 我想要有一個關鍵的交互,當按下時,它檢查相機的位置,並根據它在哪裏做不同的事情。 下面是它的一大塊:我該如何處理「if(a> x> b)」?

function onKeyDown (event) { 
switch (event.keyCode) { 

case 49: /*1*/ 
if (looking){      

    //P1 
    if (-36 < (camera.position.x) < -25) {if (-10 < (camera.position.z) < 10){ 
    //P1stuff 
    looking = false, text.innerHTML = "Painting1", controls.movementSpeed = 0, controls.rollSpeed = 0 

} else{} 
} 

還有更低於這個在我的實際項目,我把它換成if語句的條件,所以我的代碼是一切工作正常,它只是不讀我的相機的位置在格式化時「(a <(camera.position.x)< b)」的方式。 我會如何去打字並執行這種檢查if?

+2

'if(x Thernys

回答

3

(-36 < (camera.position.x) < -25)是錯誤的,你基本上做以下

var foo = -36 < camera.position.x; // foo will be either true or false; 

,然後你的第二個比較,基本上是做true < -25,這是不是你想要完成的任務。

你需要做的是分裂您比較起來:((-36 < camera.position.x) && (camera.position.x < -25)),就像這樣:

function onKeyDown (event) { 
    switch (event.keyCode) { 
     case 49: /*1*/ 
      if (looking){      

      //P1 
      if (-36 < camera.position.x && camera.position.x < -25) { 
       if (-10 < camera.position.z && camera.position.z < 10) { 
        //P1stuff 
        looking = false; 
        text.innerHTML = "Painting1"; 
        controls.movementSpeed = 0; 
        controls.rollSpeed = 0 
       } else { } 
      } 
    ... 
0

應該被簡單地分成布爾邏輯的兩片,用與操作相結合。

// -36 < camera.position.x < -25 becomes two Boolean boundary conditions... 

if (camera.position.x > -36 && camera.position.x < -25) { 
    // do something 
} 

攝像頭位置是我們在這裏檢查的相關屬性,因此爲什麼最先把它放在邏輯檢查中是最明智的。