cocos2dx 3.3 操作节点相机:
CCSize winSize=CCDirector::sharedDirector()->getWinSize();
Camera* camera=Camera::create();
camera->setCameraFlag(CameraFlag::USER1);
this->addChild(camera);
sprite->setCameraMask(2); //CameraFlag::USER1就等于2
Vec3 eyePosOld=camera->getPosition3D();
Vec3 eyePos=Vec3(0,0,eyePosOld.z);
camera->setPosition3D(eyePos);
camera->lookAt(Vec3(eyePos.x,eyePos.y,0), Vec3(0, 1, 0));//如果up参数传Vec3(sqrt(2)/2,sqrt(2)/2,0)可将头歪45度
注意camera->lookAt必须在camera->setPostion3D之后,因为lookAt中有一句
Vec3::subtract(this->getPosition3D(), lookAtPos, &zaxis);//即相减得出相机空间z轴
使用了getPosition3D。所以必须先设定对position3D再调lookAt才能得到正确结果。
参考:
http://www.cocos2d-x.org/news/344
cocos2d_tests - Camera3DTest.cpp
时间: 2024-10-13 22:50:05