cocos2dx里,camera的锚点在(0,0),修改后无效,我想让镜头按着屏幕中心旋转,你们是怎么做的?以前不用camera,我都是设置一个空节点然后把背景加上去,然后旋转,请问怎么只用这个camera就能按着屏幕中心旋转?
是这种效果,在2D平面里创建一个正交的camera,围绕整个屏幕中心旋转,就是一个土办法,就是弄个节点A,然后加上子节点camera,设置偏离位置,然后旋转这个A。有没有更优雅的办法?只动这个camera的。
相机本身也是 Node,你可以直接旋转它啊。
1赞
相机的锚点在(0,0),我想在屏幕中心旋转,也就是逻辑上的(0.5,0.5),但是修改后对camera无效啊,我看了例子里的,是用一个辅助节点实现绕y轴旋转的。
看了 Scene::render() 的代码,确实是不行。目前可以通过这种方式实现:
- 继承 Scene
- 覆盖虚函数 Scene::render()
- 在自己的 render 函数里实现如下
void HelloWorld::render(Renderer* renderer, const Mat4& eyeTransform, const Mat4* eyeProjection)
{
static float angle = 0; // 需改成更好的方式
Mat4 rotation;
Mat4::createRotationZ(angle++ / 180 * 3.1415926, &rotation);
Scene::render(renderer, rotation, eyeProjection);
}
上面的代码只是说明,自己改成比较规范的方式。