📄 scene_view.h
字号:
#include "graph.h"
#include "d3d_app.h"
#include "d3dmath.h"
#include "camera.h"
#ifndef TAG_SCENE_VIEW
#define TAG_SCENE_VIEW
struct ATTRIB_VERTEX
{
D3DXVECTOR3 p;
D3DVALUE u,v;
};
struct GRID_VERTEX
{
D3DXVECTOR3 p;
D3DCOLOR c;
};
struct SCENE_VIEW_INIT
{
float fGridSize;
int iGridNum;
TCHAR strMapFileName[MAX_PATHX];
TCHAR strCoverFileName[MAX_PATHX];
};
class SCENE_VIEW
{
public:
CAMERA m_Camera;
VOID SetView();
DWORD m_iGridVertexAmount; // 格子顶点总数量(格子本身 + 世界边框的所有顶点)
int m_iGridNum;
float m_fGridSize;
float m_fGridSizeX;
float m_fGridSizeY;
HRESULT CreateGridObj(int iNum , float fGridSize); // 创建格子
VOID ResetGridSize(float fSize); // 调整格子尺寸
VOID ResetGridNum(int iNum); // 调整格子数量
TCHAR strBackgroundInfo[128];
TCHAR strGridRatio[128]; // 格子信息记录
VOID CaluGridInfo(); // 计算格子信息
// 颜色
DWORD m_dwGridColor;
DWORD m_dwBlockColor;
DWORD m_dwBlockCharColor;
LPDIRECTDRAWSURFACE7 psurMap;
LPDIRECTDRAWSURFACE7 psurCover;
LPDIRECTDRAWSURFACE7 psurAttr;
GRID_VERTEX *pGridVB; // 格子顶点缓冲
ATTRIB_VERTEX *pAttrVB; // 属性顶点缓冲
// 格子坐标与世界坐标的转换
VOID WorldToGrid(int x , int y , int *piGridX , int *piGridY) { Coord_2DWorldToGrid(x , y , piGridX , piGridY , m_fGridSizeX , m_fGridSizeY , m_iGridNum); }
VOID GridToWorld(int x , int y , int *piWorldX , int *piWorldY) { Coord_GridTo2DWorld(x , y , piWorldX , piWorldY , m_fGridSizeX , m_fGridSizeY , m_iGridNum); }
VOID SetAttrSurface(GAME_GRID *pgridWorld , DWORD dwColor);
VOID SetAttrSurfaceValue(int x , int y , DWORD dwColor);
BOOL Init(SCENE_VIEW_INIT *pSceneViewInit);
VOID DrawGridObj(); // 绘制
VOID DrawSingleGridObj(int iGridX , int iGridY);
VOID DrawGridAttrChar();
VOID DrawGridAttrColor();
VOID DrawMap(GAME_MAP *pmapMain);
VOID DrawCover(GAME_MAP *pmapMain , GAME_GRID *pgridCoverRedraw);
VOID DrawCoverAttr(GAME_MAP *pmapMain , GAME_GRID *pgridCover);
VOID DrawCoverRedrawRect(GAME_MAP *pmapMain , GAME_GRID *pgridCoverRdraw);
VOID DrawGrid(int iDrawX , int iDrawY , GAME_GRID *pGrid , DWORD dwColor);
VOID Scroll(int Dir);
VOID ReleaseDeviceObj();
VOID Release();
SCENE_VIEW();
~SCENE_VIEW();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -