Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LibGdx,viewport/camera#unproject有时(不总是)返回错误的值_Java_Android_Camera_Libgdx_2d - Fatal编程技术网

Java LibGdx,viewport/camera#unproject有时(不总是)返回错误的值

Java LibGdx,viewport/camera#unproject有时(不总是)返回错误的值,java,android,camera,libgdx,2d,Java,Android,Camera,Libgdx,2d,我使用正交摄影机和取消投影功能将屏幕点转换为世界点 一切正常,但有时#unproject方法返回一些几乎不错/预期的值,但几乎,所以您可以看到屏幕/世界跳跃X像素/单位 //screenX, screenY -> mouse position when wheel is scrolled (...) <- calculate new world size because of zooming and set it up in viewport object //calculate

我使用正交摄影机和取消投影功能将屏幕点转换为世界点

一切正常,但有时#unproject方法返回一些几乎不错/预期的值,但几乎,所以您可以看到屏幕/世界跳跃X像素/单位

//screenX, screenY -> mouse position when wheel is scrolled

(...) <- calculate new world size because of zooming and set it up in viewport object

//calculate difference in world two points
//where mouse was before zooming and where mouse is after it,
//related to worldCoords, and apply it to camera:
Vector2 before = viewport.unproject(new Vector2(screenX, screenY));
camera.viewportWidth = viewport.getWorldWidth();
camera.viewportHeight = viewport.getWorldHeight();
camera.update();
Vector2 after = viewport.unproject(new Vector2(screenX, screenY));
camera.position.x -= after.x - before.x;
camera.position.y -= after.y - before.y;
看起来这条线是有罪的:

view.setToLookAt(position, tmp.set(position).add(direction), up);
您可以复制此方法的代码并创建自己的代码,而不需要它。我想这个方法只是一个小问题,很难找到答案。现在,其他人必须更深入,找到setToLookAt内部的真正原因

view.setToLookAt(position, tmp.set(position).add(direction), up);