为什么Camera移动不了????

cocos2d-x 3.3
在layer的init中添加camera

_camera = Camera::createOrthographic(VisibleRect::right().x, VisibleRect::top().y, 0, 1);
_camera->setCameraFlag(CameraFlag::USER2);
_camera->setPosition3D(Vec3(0, 0, 0));
 this->addChild(_camera);



```
cocos2d-x 3.3
在update中更新相机位置 可就是移动不了。
 auto oldPos = _camera->getPosition3D();
 oldPos.x += 2;
_camera->setPosition3D(oldPos);


```


网上的教程是
lua的http://cn.cocos2d-x.org/tutorial/show?id=2275

怎么才能做到这种效果

createOrthographic(VisibleRect::right().x, VisibleRect::top().y, 0, 1); 你的近面跟远面咋这么小呢?改成 1,1000。

我是根据那个教程做的 说2d 的游戏 1就够了,改1000了也移动不了,cocos2d-x的官方例子没有createOrthographic例子的,只有camera3dtest

可能原因应该是这2点吧:
1.this->scheduleUpdate(); update函数没开吧
2.this->setCameraMask((unsigned short) CameraFlag::USER2); 没有设定对应节点的setCameraMask

我刚刚自己写了下,一开始也是没动。后来发现= =!忘记开update了:12::12:现在一切正常…

能把你写的例子贴出来吗?

再补充下那篇教程里面没提到的UI不动什么操作,你需要把不动的UI设置setCameraMask((unsigned short) CameraFlag::DEFAULT);

我是新建个空项目写的,你可以直接把下面的贴进去看看效果
p = Camera::createOrthographic(visibleSize.width, visibleSize.height, 0, 1);
p->setCameraFlag(CameraFlag::USER2);
p->setPosition3D(Vec3(0,0,0));
this->setCameraMask((unsigned short) CameraFlag::USER2);
closeItem->setCameraMask((unsigned short)CameraFlag::DEFAULT);
label->setCameraMask((unsigned short)CameraFlag::DEFAULT);
this->addChild§;
this->scheduleUpdate();
return true;
}

void HelloWorld::update(float dt)
{
auto pos = p->getPosition3D();
pos.x += 2;
p->setPosition3D(pos);
}