2012-11-18 4 views
1

내가 Js에게 완전한 초보자라고 말하면서 시작하자. 나는 수업을 듣고 있는데 우리 임무 중 하나는 기본적인 경주 게임을 만드는 것이다. 우리는 내가 찾은 스크립트를 사용하여 게임 쿼리를 선택할 수 있습니다. 전제는 선수들이 완전히 자동화되었고 시간의 바로 x %를 얻었고 시간의 오른쪽 %는 나머지를 남겼습니다. 나는 gamequery 튜토리얼 스페이스 게임을 일종의 가이드로 사용했다. 그러나 운동과 충돌로 작업 할 때 나의 코드는 모든 뒤에서의 움직임이 특히 느리다. 내가 아는gamequery collision issue

function Movement(){ 
movetwo = Math.random(); 
$(".obstacle").each(function(){         
        var collided = $(this).collision("#player2Body,."+$.gQ.groupCssClass); 
       if(collided.length > 0){       
          $("#player2").x($("#player2").x()-2);                       
       }    
       var collided2 = $(this).collision("#playerBody,."+$.gQ.groupCssClass); 
       if(collided2.length > 0){     
          $("#player").x($("#player").x()-2);       
       } 
      }); 

if (movetwo <= twol) { 
$("#player2").y($("#player2").y()+2); 
} 
else if ((movetwo > twol) && (movetwo <= (twol + twor))){ 
$("#player2").y($("#player2").y()-2); 
} 
else { 
$("#player2").x($("#player2").x()+2); 
} 
moveone = Math.random(); 
if (moveone <= twol) { 
$("#player").y($("#player").y()+2); 
} 
else if ((moveone > twol) && (moveone <= (twol + twor))){ 
$("#player").y($("#player").y()-2); 
} 
else { 
$("#player").x($("#player").x()+2); 
} 
} 

는 이동하기 전에 충돌을 감지하는 방법이있다하지만 난 정말 움직임이 무작위 때문에 그것을 구현하는 방법을 모르겠어요. 스위치가 더 빨라지겠습니까? 또한 기묘하게도 그것은 내가 놓은 장애물 중 약 3 개를 제외한 모든 것들과의 충돌을 보여줍니다. 그리고 웬일인지 그들이 무작위로 배치되는 곳이더라도 무시하지 않습니다. 나는 나의 기술 수준 이상의 영장을 받았기 때문에 어떤 도움을 주시면 감사하겠습니다.

답변

1

플레이어와의 충돌을 확인하는 대신, 플레이어는 장애물과 충돌하는지 확인하십시오.

+0

https://github.com/onaluf/gameQuery/wiki/API-Changes-in-0.7 감사합니다 :

당신이 정말 당신이이 문서에 설명 된 재정의 매개 변수처럼 사용할 수있는 플레이어를 이동하기 전에 플레이어가 장애물과 충돌 할 경우 확인하려면

. 나는 그것을 시도 할 것이다. 나는 콜리 전 오버라이드에 관한 문서를 보았지만 실제로는 어떻게 보이지 않았는가? 나는 약간 길을 잃었지만, var collided = $ (this) .collision ("장애물", + +. groupCssClass); 그리고 플레이어 x와 y를 보내는 방법 – flatty

+1

$ ("#"+ player.id) .collision (". obstacle",. "+ $. gQ.groupCssClass, {x : player.nextX, y : player.nextY}); –

+0

정말 고마워요. 그것은 나를 많이 돕는다. – flatty