2014-11-26 2 views
0

Я пытаюсь преобразовать координаты вида в глобальные (слоистые) координаты.Преобразование локальных (относительные координаты просмотра) в глобальные (координаты слоя)

Я попытался, как описано в docs, но похоже, не работает:

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

У меня есть, работая сочетание наоборот (преобразовывая глобального к локальному):

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; 
});