背景使用tiledmap制作的2.5D的场景 人物用splite3d加载起来
第一个问题摄影机的设置 因为背景图是2.5D的所以用默认摄影机,3D人物就创建了正交摄影机
_camera = Camera::createOrthographic(s.width, s.height, 0, 1000);
_camera->setCameraFlag(CameraFlag::USER2);
_camera->setPosition3D(Vec3(0.0f, 1.0f, 0.0f));
_camera->lookAt(Vec3(0.0f, 0.0f, 0.0f));
为什么这边position不是 0,1,1 45度角的,在地图做移动的时候会产生大问题,地图移动导致人物的位置出错,因为地图的偏移像素和人物的偏移像素不同,地图一个像素 人物需要移动45度角2的平方根像素,就因为这个问题所以我打算人物自己做旋转,摄影机默认在正面
我这样做是否正确?
这样做虽然解决了我移动地图,人物跟着移动的问题,但是导致了另外一个问题,人物偏移角度的问题
因为我们是2.5D的游戏,人物默认应该是先Y轴45度角转动,然后再X轴45度角转动,sprite->setRotation3D(Vec3(45.0f, 45.0f, 0.0f));
但是这样会先X轴45度转动,Y轴45度转动,导致人物Z轴也转动了,问题大大的,看了API感觉没有函数可以处理,那个setRotationQuat目前不理解所以不敢乱用
求指点!!!