📄 gameview.h
字号:
// GameView.h: interface for the CGameView class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GAMEVIEW_H__C6BD6128_8BDB_45F9_AD1A_23540931CCE0__INCLUDED_)
#define AFX_GAMEVIEW_H__C6BD6128_8BDB_45F9_AD1A_23540931CCE0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "BaseView.h"
#include "Bitmap.h"
#include "Player.h"
//class CPlayer;
class CGameView : public CBaseView
{
public:
CGameView();
CGameView(CGameDoc* pDoc);
virtual ~CGameView();
// 继承函数
public:
virtual void OnResume();// 恢复
virtual void OnSuspend();// 挂起
virtual bool OnInitData();// 初始化开始视图
virtual void OnStartView();
virtual void OnTimer();
virtual void OnSetTimer();
public:
InitStageData m_tInitStageData;// 最初进入游戏的初始数据
int8 m_nCurGameStatus;// 游戏状态,0是游戏开始,1是游戏,2是游戏结束
int8 m_nGameOver; // 标志游戏结束状态,1进入结束视图,2进入主菜单,0是初始值
void ExitView(int nViewID);
void ReleaseBmpRes(); //释放位图资源
void FreeResourse();
static void HandleTimer(void* pView);
bool SetTimer(int32 dwInterval, PFNNOTIFY pfnCallback);
void InitGameData();
void InitGameBmp();
// bool LoadGameBmpRes();
void DrawBgToBuffer();
void DrawGameBmp();
void DrawMovingBg();
void UpdateGameData();
// 关卡开始和结束
public:
AEERect m_tRect[2];
void UpdateStartGame();
void UpdateEndGame();
void InitGameGraphics();
int8 m_nChangeStageNum;// 有几个关卡变换数据
ChangeStage m_tChangeStage[3];
InitStageData m_tStageData[3];
int8 m_nChangeIndex;// 要切换的关卡的索引,对应ChangeStage和InitStageData的下标
public:
CCharacter* m_pCharacter[40];
void TransformBmp(IBitmap* pDestBmp, int16 nDestPosX, int16 nDestPosY,
IBitmap* pSrcBmp, int16 nSrcPosX, int16 nSrcPosY, int8 nSrcWidth, int8 nSrcHeight);
// 人物图片数据
public:
RBMPDATA m_tBmpData[60];
// 动作图片拼图
// 拼成一个动作所用的资源数
int8 m_nActionBmpNum[40];
// 人物动作图片合成数据,下标1代表动作图片索引(m_nActionBmpNum),下标2代表用于合成的数目索引
COMPOSITIVEBMP m_tPlayerAction[40][4];
// 影子数据,下标代表动作图片索引(m_nActionBmpNum)
COMPOSITIVEBMP m_tPlayerShadow[40];
// 刀光数据,下标1代表武器类型,下标2代表攻击动作图片索引(m_nActionBmpNum)
COMPOSITIVEBMP m_tPlayerWeapon[4][10];
// 动作组合
CPlayer m_tPlayer;
void InitPlayerBmpData();
// 地图数据
public:
int8 m_nMapDirectX;// 0:左,1:右
int8 m_nMapDirectY;// 0:上,1:下
int16 m_nMapWidth;// 当前地图宽(多少个横向地图块)
int16 m_nMapHeight;// 当前地图高(多少个纵向地图块)
MAPELEMENT m_tMapElement[40];
int16 m_nMapX;
int16 m_nMapY;
int8* m_pMap;
int16 m_nBackBG1PosX; // 最底层背景的位置
boolean m_bMoveRight;
boolean m_bMoveLeft;
void InitMapData();
void InitMapElementFromLocal();
boolean Moveable(int16 nPosX, int16 nPosY);
public:
int8 m_nTimeCount;// 定时器计数
boolean m_bNextGame;// 是否进入下一关
int8 m_nGameWorld;// 游戏当前大关卡
int8 m_nGameStage;// 游戏当前小关卡
boolean m_bPause;// 游戏是否暂停
AEECallback m_cbTimer; // 定时器回调结构
IBitmap* m_pScreen;
// 位图缓存,0:屏幕背景缓存,1:背景资源缓存,2:人物资源缓存,3:人物拼图缓存
IBitmap* m_pbmDbd[40];
IGraphics* m_pIGraphics;
};
#endif // !defined(AFX_GAMEVIEW_H__C6BD6128_8BDB_45F9_AD1A_23540931CCE0__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -