2014-03-31 2 views
0

나는 수업을위한 게임을 만들고 있는데, 플레이어가 승객을 넘어서 이동하는지 확인해야하고, 그렇다면 경고 상자를 표시해야한다는 것을 제외하고는 거의 모든 것을 끝냈습니다. 여기 내 JSFiddle : http://jsfiddle.net/nZ8vA/7/입니다. 당신이 볼 수 있듯이 map이라는 배열이 있는데 그리드를 구성하는 데 사용되는 것이고 나중에 사용자가 어떤 색인지 확인합니다. 그러나 문자로 표시되는 "P"를 넘어야하는지 확인해야합니다 그리드의 "P". 나는 기본적으로 map2을 추가했지만 아무 것도하지 않는다. 승객과 기지를 저장하기 위해 두 번째 맵 배열을 만들려고했지만 어떻게해야하는지 알 수 없었다.플레이어가 문자 "P"가있는 상자로 이동했는지 어떻게 확인할 수 있습니까?

사용자가 문자 "P"가있는 상자로 이동하는지 확인하고 경고가 표시되는지 어떻게 확인할 수 있습니까? 나는 문자 "P"를 확인하는 함수를 만들었지 만, map 배열에서 "p"를 사용할 때 이것을 만들었지 만, 내가 의도 한 것과 다른 색을 제거했다. (나는 여전히 색이 필요하다. 따라서 아이디어는 두 번째 배열)).

function checkPass(cell, row) { 
    var pass = map[row][cell]; 
    console.log(pass); 
    if (pass == "p") { 
    alert("Passenger"); 
     } 
    } 

나는이 작업을 수행 할 수있는 방법 (코드 예제가 나 바이올린의)

EDIT (도움이 될 것입니다 :지도 배열에서 내 바이올린에

내가 문자를 사용 "P"대신 이 줄의 일부에서 "g", "b"또는 "w"를 구별 할 수 있습니다.이 방법은 작동하는 것이지만 피들에서 P에 대한 색상 검사를 대체합니다. P가 있는지 확인하는 방법이 필요합니다. , 그러나 색상을 유지하십시오. 그래서 왜 승객과 기지 (또는 다른 적합한 대안)를 저장하기 위해 두 번째 맵 배열에 도움이 필요합니까?

+1

, 제대로 작동합니까? 내가 질문을 놓치지 않는 한 ... 편집 : 첫 번째 P 세포에서만 작동하는 것 같습니다. –

+0

'map' 배열 밑의 필자는 일부 줄에 "g", "b"또는 "w"대신 "P"라는 글자를 사용합니다. 이것은 어떻게 작동하는지 알고 있었지만 피들에서 P에 대한 색상 검사를 대체합니다. P에 있는지 확인하는 방법이 필요하지만 색상을 유지해야합니다. 그래서 두 번째 맵 배열에 대한 도움이 필요한 이유는 무엇입니까? 승객과 기지 (또는 다른 적절한 대안)를 보관하십시오. – user3481788

+0

개체를 만들고 여러 배열 대신 배열에 저장하는 것이 좋습니다. 객체에는 필요한 정보, 색상, 문자 등이 포함될 수 있습니다. –

답변

0

글자 배열을 개체의 2 차원 배열로 바꿀 수 있습니다. 다음과 같은 내용 :

var map = [ 
      [ 
       { 
        color: "g", 
        letter: "p" 
       }, 
       { 
        color: "g", 
        letter: "" 
       }, 
      ],[ 
       { 
        color: "w", 
        letter: "p" 
       }, 
       { 
        color: "b", 
        letter: "" 
       } 
      ]]; 

이것은 2x2 "지도"를 나타냅니다.

function checkPass(cell, row) { 
    var pass = map[row][cell].letter; 
    console.log(pass); 
    if (pass == "p") { 
     alert("Passenger"); 
    } 
} 

그리고 색상의 문자를 사용하여 기존의 코드는 다음과 같이 될 것이다 :

그런 다음 승객을 확인하는 코드는 다음과 같이 될 것이다 나는 당신의 바이올린을 시도

var color = map[row][cell].color; 

$('#grid .box:eq(' + count + ')').addClass(class_color[color]); 
+0

실제로는 하드 코딩 된 문자를 어떤 방법 으로든 변수로 대체해야합니다. 어쩌면 가짜 열거 형이지만, 한 번에 너무 많이 버리고 싶지는 않습니다. –

+0

나는이 일을 제대로하지 않았지만 고마워. http://jsfiddle.net/nZ8vA/8/ – user3481788

+0

@ user3481788 값을 사용하는 장소를 변경하지 않았습니다. –

관련 문제