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的 

posted on 2010-12-11 13:09  minggoddess  阅读(668)  评论(0编辑  收藏  举报