BaseApplication Framework的skdCameraMan SdkTrayManager分析
在app里 new camera 和 skdCameraMan(这是个camera的控制器 )
在构造函数中mCameraMan 初始化
在析构函数中delete
在createcamera中赋值
mCameraMan = new OgreBites::SdkCameraMan(mCamera); // create a default camera controller
在keydown,keyrelease ,mousedown,mouserelease,mousemove,frameRenderingQueued都注入了mCameraMan 的处理事件 比如mCameraMan->injectMousemove
这其实就是 把比如if(OIS_::KC_UP)(相机要做的事情) 这种代码 包到mCameraMan类里面去实现的
在keydown的时候flag设置为true 在keyup的时候 flag=false
在frameRenderingQueued里加判断若flag=true cameramove
mCameraMan里有三种相机模式CS_MANUAL基本就是mCameraMan什么都不做mCameraMan默认的是free模式
CS_FREELOOK,CS_ORBIT,CS_MANUAL
我的框架是基于baseapp的 也就是说我要重写一个cameraController 覆盖掉skdCameraMan
可以参考的 有两篇ogrewiki里的 3rd person &&first person
把camera传进去到controller 写好处理的接口
moveon moveback yaw
还需要把scenemanager传进去 建立节点 实现在圆盘边缘四个离散位置的 移动
SdkTrayManager是管理 光标属性页那些 overlay的