2014-11-26 2 views
0

뷰포트 좌표를 전역 (계층) 좌표로 변환하려고합니다.로컬 (뷰포트 상대 좌표)을 전역 (레이어 좌표)으로 변환

나는 docs 설명처럼 시도했지만 작동하지 않습니다 것 같다 :

var result= me.game.viewport.localToWorld(x,y, me.game.viewport.AXIS_BOTH); 

I가, 바이스 반대의 조합 (지역에 글로벌 변환) 작업 :

me.event.subscribe("pointerdown", function (event) { 
    // convert the given into local (viewport) relative coordinates 
    var pos = me.input.globalToLocal(event.clientX, event.clientY); 
}); 

왜 me.game.viewport.localToWorld가 작동하지 않는다고 생각합니까? 내 엔티티의 경우 좌표를 클릭 할 때 (예 : 200 점 이상) 큰 차이가 있기 때문입니다.

코드 스 니펫 : 지역에 글로벌 변환 우리가 같은 비슷한 일이

가 어떻게 뷰포트가 하나의 레이어의 좌표로 변환 할 수 있습니다

game.PlayerEntity = me.Entity.extend({ 

    /** 
    * constructor 
    */ 
    init:function (x, y, settings) 
    { 
     var self=this; 
     self.leftMouseClicked=false; 
     me.event.subscribe("pointerdown", function (event) { 
      if(!self.leftMouseClicked) { 
       var result= me.game.viewport.localToWorld(self.pos.x,self.pos.y, me.game.viewport.AXIS_BOTH); 
       console.log(result); 
       console.log(event.clientX); 
       console.log(event.clientY); 
       self.leftMouseClicked=true; 
      } 

     }); 
... 

그래서 내 질문은?

답변

0

해결책을 찾았습니다. me.game.viewport.pos에서 오프셋되었습니다.

결과 코드 :

var self=this; 
me.event.subscribe("pointerdown", function (event) { 
     //me.game.viewport.pos -- offset 
     var pos = me.input.globalToLocal(event.clientX, event.clientY); 
     self.mouseXCoord = pos.x+me.game.viewport.pos.x; 
     self.mouseYCoord = pos.y+me.game.viewport.pos.y; 
});