2012-12-08 1 views
0

저는 javascript - html5canvas 사이드 스크롤러 게임을 만들고 있습니다. 지형이 같은 이중 엔트리 테이블에 기본적으로 구성어떻게/어디서 javascript에 이중 입력 테이블을 저장 하시겠습니까?

 -1 2 10 
----------------- 
0  b a c 
----------------- 
2  a b a 
----------------- 
5  a a b 
----------------- 

(열과 행이지도와 a, bc 그 공간에 무엇을 진술 할의 위치를 ​​나타냅니다).

이 테이블을 저장하는 방법을 모르겠으므로 나중에이 테이블을 빠르게 검색 할 수 있습니다. 솔루션을 검색하는 데 도움이되는 용어를 생각할 수 없기 때문에 질문에 태그를 추가하는 데 도움이 될 것입니다. 이러한 데이터를 저장하는

+0

어디에 저장 하시겠습니까? JSON이 도움이 될 수 있습니다. –

+1

'이 테이블을 저장하는 법을 알지 못해서'나에게 이해가되지 않는다 ... 당신은 매트릭스를 저장하기 위해 배열을 사용할 수있다. –

+0

2 차원 배열 - 배열 배열 - 충분합니까? –

답변

0

사용 JSON : 그런

var map = { 
    '0': { 
     '-1': 'b', 
     '2': 'a', 
     '10': 'c' 
    }, 
    '2': { 
     '-1': 'a', 
     '2': 'b', 
     '10': 'a' 
    }, 
    '5': { 
     '-1': 'a', 
     '2': 'a', 
     '10': 'b' 
    } 
}; 

및 검색 데이터 : map['2']['-1'].

map['2']['-1'] = 'c'처럼 변경할 수도 있습니다.

원하는 경우이 개체를 더 쉽게 조작 할 수있는 몇 가지 기능을 작성할 수 있습니다.

0

JSON : JavaScript Object Notation을 사용해보십시오. 다행스럽게도 배열을 지정할 수 있습니다.

'저장'과 같은 데이터를 저장하려는 경우 사용자가 페이지를 떠나는 경우 왼쪽에서 계속할 수 있는지 또는 데이터를 내부 표현으로 저장하려는 경우 지도의

'저장':
sessionStorage를 사용할 수는 있지만 HTML5 기능 (확실하지 않음)이라고 생각됩니다. 어쨌든 여기에 caniuse 페이지가 있습니다 : http://caniuse.com/#search=sessionStorage.
예 :

window.sessionStorage.setItem("map", "{'-1': {0:b, 2:a, 5:a}, '2': {0:a, 2:b, 5:a}, '10':{0:c, 2:a, 5:b}}"); 

그런 다음 나중에 그것을 검색은 :

var map = window.sessionStorage.getItem("map"); 
map = JSON.parse(map); 
map[-1][0]; // Should be 'b' 

단점은 내가 JSON.parse()를 사용하여 해당 처리 방법은 매장 sessionStorage 문자열 만 볼 수 있다는 것입니다. 객체를 문자열로 변환하려면 JSON.stringify()을 사용할 수 있습니다.

내부 표현은 :

는 나를 이길 yabol,하지만 난 같은 제안 가고 있었다 :

var map = {'-1': {0:b, 2:a, 5:a}, '2': {0:a, 2:b, 5:a}, '10':{0:c, 2:a, 5:b}}; 

가 더 문자열이없는이 시간을. 그것은 JS 컴파일러에 의해 객체에 파싱됩니다 (아마도 이미 알고있을 것입니다).

+0

JSON 개체에서 음수와 함께 따옴표를 사용해야한다는 것을 기억해야합니다. 따옴표가없는 코드는 오류를 반환합니다 :'SyntaxError : Unexpected token -' –

+0

정말요? 고마워, 그걸 몰랐어. – 11684

+0

편집 후에 더 좋습니까? @yabol – 11684

관련 문제