头文件ShrewMouse.h:
#ifndef __ShrewMouse_H__
#define __ShrewMouse_H__
#include <Ogre.h>
class ShrewMouse
{
public:
//构造函数,参数为 地鼠实例的名称,场景管理器,地鼠在三维空间的位置。
ShrewMouse(const std::string & name, Ogre::SceneManager * sm, Ogre::Vector3 & pos);
~ShrewMouse(void);
//更新函数,用于让地鼠做相应的动作。参数为两次调用的时间间隔。
void update(float interval);
//启动,换句话说让地鼠从洞里面钻出来
void enable(void);
//检查是否在第洞外面
bool isEnable(void);
private:
//地鼠是否在洞外面
bool _isEnable;
//地鼠的实体
Ogre::Entity * _ent;
//一个时间值,当这个时间为零的时候地鼠回洞里面。
float _time;
};
#endif
头文件ShrewMouseApplication.h:
#ifndef __ShrewMouseApplication_H__
#define __ShrewMouseApplication_H__
#include "ExampleApplication.h"
class ShrewMouseManager;
class ShrewMouseApplication : public ExampleApplication
{
public:
ShrewMouseApplication(void);
~ShrewMouseApplication(void);
protected:
//用于系统回调来创建场景
void createScene(void);
//用于提供框架所需要的FrameListener类型。
virtual void createFrameListener(void);
private:
//这里提供一个管理器,用于协调所有的地鼠。
ShrewMouseManager * _miceManager;
};
#endif
头文件ShrewMouseFrameListener.h:
#ifndef __ShrewMouseFrameListener_H__
#define __ShrewMouseFrameListener_H__
#include "ExampleFrameListener.h"
#include "ShrewMouseManager.h"
#include <sstream>
class ShrewMouseFrameListener: public ExampleFrameListener
{
public:
// 构造方法有个RenderWindow因为它用这个来决