Javascript 将局部(视口相对坐标)转换为全局(图层坐标)
我正在尝试将视口坐标转换为全局层坐标 我尝试了中所述的方法,但似乎不起作用:Javascript 将局部(视口相对坐标)转换为全局(图层坐标),javascript,melonjs,Javascript,Melonjs,我正在尝试将视口坐标转换为全局层坐标 我尝试了中所述的方法,但似乎不起作用: var result= me.game.viewport.localToWorld(x,y, me.game.viewport.AXIS_BOTH); 我有,工作vise versa组合,将全球转换为本地: me.event.subscribe("pointerdown", function (event) { // convert the given into local (viewport) relative
var result= me.game.viewport.localToWorld(x,y, me.game.viewport.AXIS_BOTH);
我有,工作vise versa组合,将全球转换为本地:
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;
}
});
...
所以我的问题是:
如何将视口坐标转换为第一层,类似于将全局坐标转换为局部坐标的方法?我找到了解决方案,它从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;
});