Skip to content

Commit

Permalink
camera
Browse files Browse the repository at this point in the history
  • Loading branch information
super626 committed Sep 10, 2014
1 parent 865e9aa commit c9189e9
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions 10.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,13 @@ cocos2d-x支持两种类型的相机,透视相机和正交相机。透视相
camera->setCameraFlag(CameraFlag::USER1);
// you can also create a orthographic camera if you like
addChild(camera); //add camera to the scene
setCameraMask(2);
setCameraMask(2);

正交相机的创建方法

// create a perspective camera
auto s = Director::getInstance()->getWinSize();
Camera* camera = Camera::createOrthographic(s.width, s.height, 1, 1000);

如果同时存在多个相机,怎么标记某个物体被那些相机看到呢?

Expand All @@ -57,7 +63,13 @@ cocos2d-x支持两种类型的相机,透视相机和正交相机。透视相

Node中有个_cameraMask的属性,当相机的_cameraFlag & _cameraMask为true时,该Node可以被该相机看到。所以在上述相机的创建代码中,camera的CameraFlag设置为CameraFlag::USER1,并且该layer的CameraMask为2,则表示该layer只能被CameraFlag::USER1相机看到。

Camera从Node继承,所以可以支持大部分Action,可以对相机进行任意的平移旋转操作。
Camera从Node继承,所以可以支持大部分Action,可以对相机进行任意的平移旋转操作。

Camera类提供了由屏幕空间到世界空间的变换方法,

void unproject(const Size& viewport, Vec3* src, Vec3* dst) const;

其中viewport为视口大小,src为屏幕坐标,src->z表示距离远近裁剪面信息,-1为近裁剪面,1为远裁剪面。dst为转换到世界空间的坐标

##常用相机介绍
一般游戏中都会有主角的概念,根据相机与主角的关系,我们将相机分成三种类型,第一人称相机,第三人称相机和自由相机。
Expand Down

0 comments on commit c9189e9

Please sign in to comment.