📄 listener.h
字号:
#pragma once
#include "CEGUI.h"
#include "OgreCEGUIRenderer.h"
#include "OgreCEGUIResourceProvider.h"
#include "exampleframelistener.h"
#include "vector"
#include "windows.h"
#include <iostream>
using namespace Ogre;
class CListener :
public ExampleFrameListener,public MouseMotionListener, public MouseListener
{
public:
CListener(SceneManager* sm,RenderWindow* win , Camera* cam , CEGUI::OgreCEGUIRenderer* mGUIRenderer);
~CListener(void);
struct MAPOBJECT
{
String name;
Ogre::Vector3 pos;
Ogre::Vector3 scale;
float angleY;
};
bool m_bShutDown;
bool frameStarted(const FrameEvent& evt);
bool frameEnded(const FrameEvent& evt);
void mouseDragged(MouseEvent* e);
void mouseMoved(MouseEvent* e);
void mousePressed (MouseEvent *e);
void mouseReleased (MouseEvent *e);
void mouseClicked(MouseEvent* e);
void mouseEntered(MouseEvent* e);
void mouseExited(MouseEvent* e);
void keyPressed(KeyEvent* e);
void keyReleased(KeyEvent* e);
void keyClicked(KeyEvent* e) ;
void keyFocusIn(KeyEvent* e);
void moveCamera(float x=0,float y=0,Vector3 move=Vector3::ZERO)
{
mCamera->yaw(-Radian(x));
mCamera->pitch(-Radian(y));
mCamera->moveRelative(move);
}
CEGUI::MouseButton convertOgreButtonToCegui(int buttonID);
//按钮方法
void exit();
void saveMap();
void loadMap();
void selectTree();
void selectRock();
void selectGrass();
void selectFlower();
void selectHouse();
void selectCamera();
private:
CEGUI::OgreCEGUIRenderer* m_GUIRenderer;
SceneManager* m_sceneMgr;
RaySceneQuery* m_pRaySceneQuery;
int m_iTreeCount; //树当前数量
int m_iRockCount; //石头当前数量
int m_iGrassCount; //草当前数量
int m_iFlowerCount; //花当前数量
int m_iHouseCount; //房子当前数量
int m_iCameraCount; //摄像机当前数量
int m_iObjectType; //0:空 1:树 2:石头 3:草 4:花 5:房子 6:摄像机
SceneNode* m_pSnTreeRoot; //树根结点
SceneNode* m_snTree; //树结点
SceneNode* m_snRock; //石头结点
SceneNode* m_snGrass; //草结点
SceneNode* m_snFlower; //花结点
SceneNode* m_snHouse; //房子结点
SceneNode* m_snCamera; //摄像机结点
SceneNode* m_snCurrentObject; //当前鼠标移动的物体的结点
bool m_bNegativeScale;
std::vector<MAPOBJECT> m_vecTree; //树信息数组
std::vector<MAPOBJECT> m_vecRock; //石头信息数组
std::vector<MAPOBJECT> m_vecGrass; //草信息数组
std::vector<MAPOBJECT> m_vecFlower; //花信息数组
std::vector<MAPOBJECT> m_vecHouse; //房子信息数组
std::vector<MAPOBJECT> m_vecCamera; //摄像机信息数组
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -