2016-04-15 12 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)" way。 このようなifのチェックを入力して実行するにはどうすればよいですか?

+2

'if(x Thernys

答えて

3

(-36 < (camera.position.x) < -25)が間違っている、あなたは基本的に以下の

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

をやっていると、あなたの第2の比較は、基本的には、あなたが達成したいしているものではありませんこれは、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 
} 

カメラ位置は、あなたの論理的なチェックで最初にそれを置くために最も賢明であるので、なぜ、私たちはここでチェックしている適切な特性です。

関連する問題