下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Cocos2D-X游戏开发教程:摄像机类CCCamera的使用方法

作者:课课家教育     来源: http://www.kokojia.com点击数:1630发布时间: 2019-04-03 09:02:22

标签: Cocos2D-X摄像机Cocos2D-XCocos2D-X游戏开发

  我们在游戏开发中,经常会用到这么一个类——CCCamera摄像机类,本篇教程将详细解析Cocos2d-x中如何使用摄像机类CCCamera。

  注意:本篇学习教程使用的是Cocos2d-x-2.1.4版本(截至目前为止最新稳定版) ,PC开发环境Windows7,C++开发环境VS2010

  一、摄像机类

  所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出来。当节点发生缩放旋转和位置

  变化的时候,都需要覆盖CCCamera类,让这个节点通过CCCamera类重新渲染。

  注意: CCNode类里有些方法可以实现缩放、旋转和位置变化,当使用摄像机类实现这些的时候,那些方法就不能同时 使用了。使用摄像机类也不可以同时使用世界坐标了。

  CCCamera类的继承关系如下图 所示。

Cocos2D-X游戏开发教程:摄像机类CCCamera的使用方法_Cocos2D-X摄像机_Cocos2D-X_Cocos2D-X游戏开发_课课家

  Cocos2D-X中的CCCamera类使用OpenGL的gluLookAt函数来设置位置。gluLookAt函数有三组关于坐标的参数,

  其中“Eye”系列的x、y、z坐标参数是视角的位置,而“Center”系列的x、y、z坐标参数是所视目标的坐标位置,

  “Up”系 列的x、y、z坐标参数是摄像机方向的向量坐标。关于这三个参数,你可以理解为以“Eye”为起点,沿着

  “Up”方向,朝 着“Center”看。

  注意 : 这里需要说明的是,在三维效果中,使用CCCamera类是可以的,但是如果你只需要一些二维特效的话,那么更推荐跟随类CCFollow。跟随类CCFollow的相关知识,我们会在后面学习到。

  CCCamera类的主要保护成员数据如下图所示。

  CCCamera类的主要公共函数如下图所示。

  二、实例:CCCamera类的使用

  CCCamera类可以实现节点对象的缩放旋转等,下面就让我们来实现摄像机类实现缩放的实例。

  <1> 首先新建一个Cocos2D-X项目,然后在HelloWorldScene.h文件中添加如下代码所示。

  

  添加了一个成员变量m_z和一个成员函数update。

  <2> 然后在HelloWorldScene.cpp文件的init函数中添加如下所示代码。

  

  <3> 最后在update函数中添加如下所示代码。

  

  通过getCamera函数获得摄像机实例,并通过设置视角的z轴位置来实现缩放效果。 需要再次强调的是: 不推荐

  使用摄像机实现二维特效,本实例只是一个使用的范例。

  实例运行效果图:

赞(12)
踩(2)
分享到:
华为认证网络工程师 HCIE直播课视频教程