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

📄 verduregamedefine.hpp

📁 里面包含了许多实用的游戏开发包
💻 HPP
📖 第 1 页 / 共 3 页
字号:
													//			  小于0:降低攻击命中率
													//			  大于0:增加攻击命中率
	WORD			wFuJiaGongJiMingZhongLuChiXuTime;//附加攻击命中率的持续时间
	DWORD			dwFuJiaGongJiMingZhongLuTime;	//附加攻击命中率时的时间

	//防御力
	signed short int siFuJiaFangYuLi;				//附加防御力( 0:没有附加防御力
													//			  小于0:降低防御力
													//			  大于0:增加防御力
	WORD			wFuJiaFangYuLiChiXuTime;		//附加防御力的持续时间
	DWORD			dwFuJiaFangYuLiTime;			//附加防御力时的时间

	//躲闪力 
	signed short int siFuJiaDuoSanLi;				//附加躲闪力( 0:没有附加躲闪力
													//			  小于0:降低躲闪力
													//			  大于0:增加躲闪力
	WORD			wFuJiaDuoSanLiChiXuTime;		//附加躲闪力的持续时间
	DWORD			dwFuJiaDuoSanLiTime;			//附加躲闪力时的时间
	WORD			wEyeshot;						//视野
	BYTE			byHap;							//运气
		
	WORD			wGoodsNum;						//拥有物品数
	WORD			wpGoodsTable[def_EACH_LIVELY_THING_MAX_GOODS_NUM];
	WORD			wMagicNum;						//拥有法术数
	WORD			wpMagicTable[def_EACH_LIVELY_THING_MAX_MAGIC_NUM];

    WORD    		wImageId;                       //图像在图像缓冲区中的位置
    BYTE    		byLayer;                        //人物的所在的层(地面层或天空层)
    WORD    		cxInMapX;                       //在场景中的位置X
    WORD    		cyInMapY;                       //在场景中的位置Y
    BYTE    		byPlayId;                       //保存我方人员还是敌方人员
    BYTE 			byActive;                       //激活
    WORD 			wFrameNum;                      //当前的图像帧数
    
    BYTE 			byBusy;                         //忙
    BYTE 			byCurrentAspect;            //当前人物的方向
	signed 			short int siMayEvent;		//可能将发生的事件
	WORD 			wMayEventObjectSitus;		//导致事件发生的物件位置
	BYTE			byMayEventObjectType;		//导致事件发生的物件类型

	signed short int siMessageId;				//消息的ID号

	signed			short int cxMoveX;			//移动时的计数
	signed 			short int cyMoveY;
	signed 			char cxCountX;					//移动时的方向偏移值
	signed 			char cyCountY;

	int 			nTimeCount;						//时间计数
    DWORD 			dwCelerityCount;        		//敏捷度计数
    
    WORD 			wCurTask;                       //当前的任务
    WORD 			wCurTaskX;                      //任务的位置
	WORD 			wCurTaskY;
    WORD 			wTaskCorrespondingObjectSitus; 	//任务所对应的物件
    BYTE 			wTaskCorrespondingObjectType; 	//任务所对应的物件的类型
	WORD			wTaskCount;						//任务计数
    
    WORD 			wFinalTask;                 		//最终任务
    WORD 			wFinalTaskCorrespondingObjectSitus; //最终任务所对应的物件
    BYTE 			byFinalTaskCorrespondingObjectType;	//最终任务所对应的物件的类型
    WORD 			cxFinalTaskX;               		//最终任务坐标
    WORD 			cyFinalTaskY;
	WORD			wImageOffset;
	WORD			wEndTaskCount;					//每一次任务需要使用的精
	BYTE			byAction;						//行动过
	USE_PATH_STACK 	stPathStack;					//路径堆栈
    virtual void 	LivelyThingAi(void)=0;			//此函数必须存在
    virtual void 	LivelyThingInit(void)=0;		//此函数必须存在
};

//----------------------------------------------------------------
////静态的物件的描述信息
//----------------------------------------------------------------
typedef struct						
{
	char 	szEventName[21];		//事件名称名称
	BYTE 	byLayer;				//环境层中的物体所在的层
	int 	cxInSceneX;				//在场景中的X(以象素为单位)	
	int		cyInSceneY;             //在场景中的Y(以象素为单位)
	WORD	cxLinkInMapX;			//景物之间连接后在场景中的位置X
	WORD	cyLinkInMapY;           //景物之间连接后在场景中的位置Y
	WORD	cxLinkUseGrideWidth;	//景物之间连接后占用格子的宽度
	WORD	cyLinkUseGrideHeight;   //景物之间连接后占用格子的高度
	WORD	cxInMapX;				//在场景中的位置X
	WORD	cyInMapY;               //在场景中的位置Y
	WORD	wShowOrder;				//显示的先后次序(在地下层与地表静态层可调整同一层物件的显示先后次序)
	WORD	wImageId;				//图像在图像缓冲区中的位置
}TEMP_BUILD_INFO;

class STATIC_THING
{
  public:
	BYTE	byMake[20];				
	WORD	wMake[20];
	DWORD	dwMake[10];
	WORD	wId;					//Id号
	BYTE	bySelfType;				//自身的类型
	int		cxInSceneX;				//在场景中的X(以象素为单位)
	int		cyInSceneY;				//在场景中的Y(以象素为单位)
	WORD	cxLinkInMapX;			//景物之间连接后在场景中的位置X
	WORD	cyLinkInMapY;			//景物之间连接后在场景中的位置Y
	WORD	cxLinkUseGrideWidth;	//景物之间连接后占用格子的宽度
	WORD	cyLinkUseGrideHeight;	//景物之间连接后占用格子的高度
	WORD	cxInMapX;				//在场景中的位置X
	WORD	cyInMapY;				//在场景中的位置Y
    WORD    wCurrentFrame;          //动作的当前帧
	WORD	wImageId;				//图像在图像缓冲区中的位置
	WORD	byLayer;				//环境层中的物体所在的层
	WORD	wShowOrder;				//显示的先后次序(在地下层与地表静态层可调整同一层物件的显示先后次序)
	int 	nTimeCount;
	WORD 	wFrameNum;				//当前的图像帧数
	WORD	wImageOffset;			//图像偏移量 
    BYTE 	byCurrentAspect;        //当前的方向
	signed short int siMessageId;	//消息的ID号
    virtual void StaticThingAi(void)=0;
    virtual void StaticThingInit(void)=0;
};

typedef struct
{
	char 	szFileName[21];						//事件的文件名
	char	szEventName[21];					//事件名称名称
	BYTE  	byObjectType;						//事件的类型
	DWORD 	dwObjectSize;						//事件的长度
	union
	{
		BOOL  	(*LivelyThingInitialize)(LIVELY_THING *);
		BOOL  	(*StaticThingInitialize)(STATIC_THING *);
	};
	HINSTANCE 	sthLibrary;						//事件的库
}EVENT_DLM_INFO;

/*----------------------------------------*\
|   场景定义	                            |
\*----------------------------------------*/
#define def_FILE_IS_SCE     200						//SCE格式的文件
#define def_SCE_FILE_ID		"VD->SCE"				//SCE文件标识
#define def_SCE_FILE_CURRENT_VERSION 3				//SCE文件版本号
#define def_VD_SCE_FILE_ID_SIZE 20
//----------------------------------------------------------
//场景文件的定义
//----------------------------------------------------------
typedef struct
{
	char szSceneFileId[def_VD_SCE_FILE_ID_SIZE];	//文件标识。内容为“VD->SCE”
	WORD wVersion;									//SCE文件版本号
}SCE_FILE_HEAD;

#define def_MY_CHARACTER_MAX_NUM 10

#define def_MAX_BACKUP_SOUND_BUFF_SIZE	1024 * 150
typedef struct
{
    int 	cxWidth;                                //场景的宽度(以像素为单位宽度)
    int 	cyHeight;                               //场景的高度(以像素为单位高度)
    int 	cxCurrentX;                             //当前显示位置(以像素为单位)
    int 	cyCurrentY;
	WORD	cxCurrentBlockX;						//当前位置(斜45度)块
	WORD	cyCurrentBlockY;
	WORD	cxOldCurrentBlockX;
	WORD	cyOldCurrentBlockY;
	WORD	iMapWidthAndHeight;						//斜45度块的宽度和高度(在斜45度中的块的高度和宽度是相同的)
    WORD 	cxMapWidth;								//正块的宽度
    signed short int siCurrentActiveCharacterId;    //当前控制的人物
    WORD    wBuildNum;                              //景物数
    WORD    wTotalImageNum;                         //使用总图像数
    WORD    wCharacterNum;                          //人物数
    WORD	wMyCharacterNum;						//我方人物数
    WORD	wMyCharacterId[def_MY_CHARACTER_MAX_NUM];	//我方人物在人物链中的下标
	WORD	wEventNum;
	WORD 	wPropertyNum;							//道具数
	LPDIRECTDRAWSURFACE3 	stSceneSurface;
	BYTE	byTransparentScaleType;
	BYTE	byTransparentScale;
	BYTE	bySystemBusy;							//系统忙
	DWORD	dwOldTransparentScaleTime;
	BYTE	byForbidMoveScreen;						//是否禁止移动屏幕
	BYTE	byQuitScene;
	BYTE	byGameStart;							//游戏开始
	BYTE	byNotExecuteTask;
	BYTE	byCurrentActiveGroup;					//当前激活的组
	WORD	wBoutCount;								//回合数
//	FILE	*fpBackMusicFilePoint;					//背景音乐的文件指针
///	LPDIRECTSOUNDBUFFER	stpMusicPlayBuff;			//当前播放的声音缓冲区
//	char	*cpBackMusicBuff;						//声音缓冲区
//	SOUND	stBackMusicHead;						//背景音乐的头部数据
//	DWORD	dwBackMusicCurrentPlaySitus;			//当音乐播放的位置
}SCENE_INFO;                        	 			//场景信息结构


#define def_MAX_PROPERTY						100			//场景中最大允许的物品数
typedef struct
{
	WORD 				wId;
	WORD				cxInMapX;				//在场景中的位置X
	WORD				cyInMapY;				//在场景中的位置Y
	BYTE				byUseMake;				//此块缓冲区是否使用
	WORD				wImageId;				//图像在图像缓冲区中的位置
	WORD				wPropertyAmount;		//物品的数量
	WORD				wImageOffset;
}PROPERTY_LINK;


 /*----------------------------------------*\
| 地图块信息		  						 |
 \*----------------------------------------*/
typedef struct
{
	WORD	 			wUseSitus;				//使用者的位置
	BYTE				byUse;					//使用标志 0:没有使用 1:使用
	BYTE				byUseType;				//使用者的类型	 0: 人物		2:环境
	BYTE				byMapType;				//地图块的类型	(0: 空的 	1: 泥地 2:草地 ...)
	BYTE				byExistProperty;		//是否有物品
	WORD				wPropertyId;			//物品的Id号
}MAP_DESCRIBE;

typedef struct
{
	WORD				wId;					//需要显示物件在物件链中的位置
	BYTE				byObjectType;			//物件的类型
	WORD				ByNextSuffix;			//下一个需要显示的物件的下标	0xfe:表示没有需要显示的物件
}SHOW_IMAGE_LINK;

typedef struct
{
	WORD				byShowObjectNum;		//需要显示的物件数
	SHOW_IMAGE_LINK		stpShowImageInfo[def_EACH_LAYER_MAX_SHOW_IMAGE_NUM];	//每层需要显示的物件缓冲区
}SHOW_IMAGE_INFO;

typedef struct
{
	signed short int	siNewMouseInObjecId;
    BYTE                byNewMouseInObjectType;		//鼠标所在处的物件的类型
	signed short int	siMouseHandObject;			//鼠标是否拿有物品
    signed short int 	siMouseInObjecId;			//鼠标所在处的物件
	WORD				wImageId;
    BYTE                byMouseInObjectType;		//鼠标所在处的物件的类型
    DWORD               wMouseInObjectTime;			//鼠标移动到物件上的时间
    WORD                wFrameNum;                  //鼠标图像当前的帧数
    int                 nTimeCount;					//鼠标时间计数
    signed short int    siNewTask;					//新的任务
    WORD                cxNewTaskX;					//新的坐标 
    WORD                cyNewTaskY;
	BYTE				byMouseRightDown;
	BYTE				byMouseLeftDown;
}MOUSE_INFO;

#define def_MAX_MESSAGE 50
typedef struct
{
	int					iMake[4];					//存放一些不要的参数
	signed short int 	siGetMessageId;				//接收此消息的物件ID号
	BYTE				byGetMessageIdType;			//接收此消息的物件类型
	DWORD				dwMessageContent;			//消息的内容
	DWORD				dwMessageProcreantTime;		//消息产生的时间
	signed int			cxMessageProcreantX;		//消息产生的坐标,已场景为坐标,单位为像素
	signed int			cyMessageProcreantY;
	BYTE				byMessageAvailable;			//此消息是否有效 0:无效 1:有效
	signed short int 	siMessageCounterpointId;	//此消息对应的物件ID号
	BYTE				siMessageCounterpointIdType;//此消息对应的物件类型
   	BYTE				byCoordinateType;			//坐标类型

⌨️ 快捷键说明

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