⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameview.h

📁 看到有兄弟提出的半透明算法
💻 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 + -