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

📄 map.h

📁 泡泡堂单机版(含ASL游戏引擎源码 泡泡堂单机版(含ASL游戏引擎源码
💻 H
字号:
#pragma once

#include "incs.h"
#include "factory.h"
#include "role.h"

const int CELL_SIZE = 40;
const int CELL_X = 15;
const int CELL_Y = 13;
const int CELL_X_ALL = 17;
const int CELL_Y_ALL = 15;
const int CELL_NUM = CELL_X_ALL * CELL_Y_ALL;
const int SCENE_LEFT = 20;
const int SCENE_TOP = 41;

enum ItemType
{
	itNone,
	itFirm,
	itSolid,
	itBox,
	itPopo,
	itGift
};

enum BlindageType
{
	btNone,
	btBlind,
	btBush,
	btTent
};

struct ExplosionData	// 块爆炸数据
{
	BYTE Dr			: 4;	// 方向	
	BYTE IsHead		: 4;	// 是否为边界
	BYTE Gift		: 4;	// 是否有宝物
	BYTE Timer		: 4;
	BYTE Status;			// 状态
	BYTE Dead;
};

struct Cell
{
	Cell(void) : pItem(NULL), pBlindage(NULL) {}
	BYTE			Ground;
	BYTE			Type;
	BYTE			Blind;
	BYTE			ID;
	CItem*			pItem;
	CBlindage*		pBlindage;
	ExplosionData	Explosion;
};

#define MAP CMap::Instance()

class CMap
{
private:
	CMap();
	~CMap();

public:
	static CMap& Instance(void);

	void Update(float fDelta);
	void Draw(void) const;

	void LoadMap(ASLFile *pFile);
	//void LoadRole(ASLFile *pFile, int nID);

	inline Cell* operator[](int i)
	{ ASSERT(i >= 0 && i < CELL_NUM); return m_vCell + CELL_X_ALL * i; }

private:
	void ReleaseMap(void);
	void DrawGround(void) const;
	void DrawExplosion(int nCellY, int nCellX) const;

private:
	Cell m_vCell[CELL_NUM];
	int m_vRoleSeq[ROLE_NUM];
	ASLBitmap *m_pbmGround;
	ASLBitmap *m_pbmExplosion;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -