2014-05-18 1 views
1

Crafty에 관한 두 가지 질문이 있습니다. (Google 그룹 커뮤니티에서도 물어 보았습니다.Crafty 정보 - 등각 투영 및 중력; also fourway

나는이 튜토리얼 http://buildnewgames.com/introduction-to-crafty/을 따라 갔고 교활한 웹 사이트 블록 (http://craftyjs.com/demos/isometric/)의 "등각 투영"데모도 살펴 봤다. 그리고 저는 두 가지 모두에서 배운 것을 결합하여 몇 가지 것을 시도해 왔습니다.

(Q1) 네 방향 구성 요소 (자습서에서 많이 사용됨)를 사용할 때, 예를 들어 왼쪽 화살표 키를 누른 상태에서 왼쪽을 누른 상태에서 Ctrl 키를 누른 상태에서 현재 탭을 누른 다음 뒤로 이동합니다 더 이상 왼쪽으로 잡고있다), 내 캐릭터는 "왼쪽"방향으로 움직이게된다. 다른 3 방향에서도 발생합니다. 그게 알려진 문제입니까? 어쨌든 교활함을 바꾸지 않고 고칠 수 있습니까?

여기 파이어 폭스 29와 크롬 34에서 발생합니다. 내 코드는 튜토리얼의 끝 부분에서 제시되는 최종 버전의 코드입니다 (동일하지는 않지만 이미 동일한 문제가있는 경우에도 마찬가지입니다).

그런데 이러한 상황이 발생하면 Ctrl 키를 누른 상태에서 다시 왼쪽 키를 누른 상태로 돌아 가면 정상적으로 돌아갑니다 (이동이 중지됨).

(Q2) 등각 투영 피처는 Z를 높이로 해석하고 중력 구성 요소는 높이를 Y로 해석합니다. 이게 문제가 아닌가? 예를 들어 중력에 높이 이외에 y 이외의 다른 것을 사용하도록 말할 수 있습니까?

답변

1

(Q1)과 관련하여 이동은 keydown 및 keyup 이벤트로 관리됩니다. 이동 시작이 트리거되었을 때 탭을 변경하면 네 방향 구성 요소가 결코 다시 정지 할 키 업 이벤트를 얻지 못합니다. 다음과 같은 해결 방법을 사용할 수 있습니다 : 브라우저 탭 교활가 비활성 상태에서 실행되는 경우

Crafty.settings.modify("autoPause", true); 

(어딘가에 init 함수에서) autoPause를 사용하여 게임을 일시 중지됩니다. 그런 다음이 같은 이동의 keyup 이벤트를 트리거하거나 플레이어 구성 요소를 방지하여이 이벤트에 반응 할 수있다 : 당신이 처리 할 경우

player.bind('Pause', function() { 
    this.disableControl(); 
}); 

player.bind('Unpause', function() { 
    this.enableControl(); 
}); 

당신은 너무 거기에 애니메이션을 중지 할 수 있습니다 귀하의 플레이어 구성 요소의 ..

관련 문제