📄 define.h
字号:
// SRDHDefine.h
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEEFile.h" // File interface definitions
#include "AEESound.h" // Sound Interface definitions
#include "AEEHeap.h"
#include "AEEBitmap.h"
#include "AEESprite.h"
#include "AEEGraphics.h"
#include "AEEHtmlViewer.h"
#include "../eidolon.bid"
#include "../eidolon_res.h"
// 绘图对齐方式
enum DFUN_DRAW_ALIGN
{
EDD_ALIGN_NONE = 0x00000000,
// 水平对齐 -- (mutually exclusive within this group)
EDD_ALIGN_LEFT = 0x00000010,
EDD_ALIGN_CENTER = 0x00000020,
EDD_ALIGN_RIGHT = 0x00000040,
EDD_ALIGN_FILL = 0x00000080,
EDD_ALIGNHORZ_MASK = 0x000000F0, // 水平对齐掩码
// 垂直对齐 -- (mutually exclusive within this group)
EDD_ALIGN_TOP = 0x00000100,
EDD_ALIGN_MIDDLE = 0x00000200,
EDD_ALIGN_BOTTOM = 0x00000400,
EDD_ALIGN_SPREAD = 0x00000800,
EDD_ALIGNVERT_MASK = 0x00000F00, // 垂直对齐掩码
EDD_ALIGN_MASK = (EDD_ALIGNHORZ_MASK|EDD_ALIGNVERT_MASK)
};
/*************************************** 宏定义 ************************************/
// 开始检验
#define BEGIN_CHECK \
boolean bCHECK_HAS_ERROR = false; \
do
// 检验错误捕捉
#define CATCH_CHECK \
while(0); \
MyEndCheck: \
if (bCHECK_HAS_ERROR)
// 结束检验
#define END_CHECK
// 进行错误处理
#define PROCESS_ERROR \
do{ \
DBGPRINTF("My Error ------------ "); \
bCHECK_HAS_ERROR = true; goto MyEndCheck; \
}while(0)
// 将表达式的值赋给p,并检验p是否为空
#define CHECK_NULL(p, exp) do{ p = exp; if (p == NULL) PROCESS_ERROR; }while(0)
// 检查是否不成功
#define CHECK_NOT_SUCCESS(exp, success_code) if (exp != success_code) PROCESS_ERROR
// 检验expression是否不等于SUCCESS
#define CHECK_ERROR(exp) CHECK_NOT_SUCCESS(exp, SUCCESS)
// 检验是否是假
#define CHECK_FALSE(exp) if (!exp) PROCESS_ERROR
// 使用制定方法清空指针,并将指针置空
#define _RELEASE(p, method) \
if (p) \
{ \
method; \
p = NULL; \
}
// 清空接口指针
#define IRELEASE(p, type) _RELEASE(p, I##type##_Release(p))
// 清空自定义类型,带有Release()方法的指针
#define CUSTOM_RELEASE(p) _RELEASE(p, p->Release())
/***********************************************************************************/
// 视图定义
#define ID_VIEW_START 1 // 起始
#define ID_VIEW_MENU 2 // 主菜单
#define ID_VIEW_GAME 3 // 游戏
#define ID_VIEW_HELP 4 // 帮助
#define ID_VIEW_SET 5 // 设置
#define ID_VIEW_ABOUT 6 // 关于
#define ID_VIEW_STOP 7 // 结束
#define TIME_VIEW 50 // 视图定时器时间间隔
#define TIME_GAME 50//20 // 游戏定时器时间间隔
#define MENU_TEXT_NUM 5 // 菜单数目
#define BACKGROUND_WIDTH 176 // 背景宽
#define BACKGROUND_HEIGTH 205 // 背景高
#define AVLID_KEY_PRESS_NUM 0 // 无效按键次数
#define MAP_COW_INDEX 12 // 定义地图多少行
#define MAP_COL_INDEX 45 // 定义地图多少列
#define SIGLE_MAP_WIDTH 20 // 单张位图的宽
#define SIGLE_MAP_HEIGHT 20 // 单张位图的高
#define SPELLPLAYERBMP_WIDTH 65 // 用于玩家拼图的缓冲区宽
#define SPELLPLAYERBMP_HEIGHT 65 // 用于玩家拼图的缓冲区高
#define WORLD_ACCELERATION 3 // 定义世界加速度
#define INIT_PACE 15//18 // 定义人物跳跃起始速度
#define PLAYER_MOVEX 4 // 玩家横向移动步伐大小(也做为地图移动的速度)
#define PLAYER_MOVEY 3 // 玩家纵向移动步伐大小
#define INIT_POSX 60 // 人物固定横坐标
#define INIT_POSY 120 // 人物固定纵坐标
#define SOUND_CFG_FILE "gamecfg/SoundCfg.dat"// 声音配置文件
#define GAME_SENCE_FILE "gamecfg/GameSence.dat"// 游戏场景配置文件
#define GAMEBG_FILE "ground/ground_0%d.gro"// 游戏背景配置文件
// 各位图索引
// 起始视图
#define LOGO1_INDEX 0 // 移动标志BMP位图索引
#define LOGO2_INDEX 1 // 百宝箱BMP位图索引
// 菜单视图
#define MAINMENUBG_INDEX 0 // 菜单背景索引
#define MENUSELECT_INDEX 1 // 菜单选择索引
#define MENUTEXT_INDEX 2 // 菜单文字索引
#define TITLE_INDEX 3 // 标题索引
// 关于视图
#define ABOUTTEXT_INDEX 2 // 关于视图文字索引
#define TITLE1_INDEX 3 // 标题索引
// 帮助视图背景使用 MAINMENUBG_INDEX
#define HELPTEXT_INDEX 2 // 帮助视图文字索引
/*--------------------------- 游戏视图 ----------------------*/
// 游戏(左右软键文字索引使用 TEXT1_INDEX)
#define BOTTOMBG_INDEX 0 // 底层背景索引
#define PLAYER_INDEX 1
/*------------------------------------------------------------------*/
// 结束视图
#define OVER_INDEX 0 // 结束视图画面索引
// 按键
enum EKEYCODE
{
EKEY_UP = 0, // 上方向键
EKEY_DOWN = 1, // 下方向键
EKEY_LEFT = 2, // 左方向键
EKEY_RIGHT = 3, // 右方向键
EKEY_SELECT = 4, // 确定,5键
// 数字
EKEY_KEY1 = 5, // 1
EKEY_KEY2 = 6, // 2
EKEY_KEY3 = 7, // 3
EKEY_KEY4 = 8, // 4
EKEY_KEY5 = 9, // 5
EKEY_KEY6 = 10, // 6
EKEY_KEY7 = 11, // 7
EKEY_KEY8 = 12, // 8
EKEY_KEY9 = 13, // 6
EKEY_CLR = 14 // CLR
};
// 主菜单
enum MAINMENU
{
EMENU_START = 1, // 开始
EMENU_CONTINUE, // 继续
EMENU_HELP, // 帮助
EMENU_ABOUT, // 关于
EMENU_STOP // 结束
};
//配置视图选项
enum SETVIEWMENU
{
VIBRATE_OPT = 0, // 震动
SOUND_OPT // 声音
};
// 游戏视图菜单
enum GAMEMENU
{
CONTINUE_GAME = 0, // 继续游戏
GANE_HELP, // 游戏帮助
RETURN_MENU, // 返回主菜单
EXIT_GAME // 退出游戏
};
// 声音配置文件
typedef struct _SSoundCfg
{
boolean bOpenSound;
}SOUNDCFG;
// 游戏场景配置文件
typedef struct _SGameSence
{
int8 nCurGameSence;
}GAMESENCE;
// 地图图片元素数据
typedef struct _SMapElement
{
int16 nPosX;// 图片X位置
int16 nPosY;// 图片Y位置
int8 nWidth;// 图片高
int8 nHeight;// 图片宽
boolean bBlock;// 是否阻碍
}MAPELEMENT;
// 资源图片大小数据,适用人物、敌人、BOSS等
typedef struct _SBmpData
{
int16 nResPosX;// 资源起始X位置
int16 nResPosY;// 资源起始Y位置
int8 nResWidth;// 资源图片高
int8 nResHeight;// 资源图片宽
}RBMPDATA;
// 此数据适用范围
// 1:人物动作图片大小数据,适用人物、敌人、BOSS等
// 2:定义影子,与人物动作图片对应
// 3:定义武器,与人物当前图片相适应
typedef struct _SCompositiveBmp
{
int8 nResIndex;// 对应的资源图片索引(PLAYERBMPDATA)
int8 nSeekPosX;// 此动作画图时便宜的X位置
int8 nSeekPosY;// 此动作画图时便宜的Y位置
boolean bTransform;// 是否翻转
}COMPOSITIVEBMP;
typedef struct _SCharacterIndex
{
int8 nLeftIndex;
int8 nRightIndex;
}CHARACTERINDEX;
typedef struct _SShadow
{
int16 nRelativeX;
int16 nRelativeY;
int16 nPosX;
int16 nPosY;
int8 nIndex;
}SHADOW;
// 人物行动时的坐标补足
typedef struct _SActionBalance
{
int8 nBalanceFun;// 补足方式,0:加,1:减
int8 nBalanceX;// X向补足差额
}ACTIONBALANCE;
// 关卡切换
typedef struct _SCHANGESTAGE
{
int16 nStartMapX;// 可以改变关卡的横坐标起点
int16 nEndMapX;// 可以改变关卡的横坐标终点
int16 nMapY;// 可以改变关卡的纵坐标
int8 nChangeWorld;// 大关卡变化
int8 nChangeStage;// 小关卡变化
}ChangeStage;
// 用于在关卡开始时当前地图位置和人物位置
typedef struct _SINITSTAGEDATA
{
int16 nMapX;// 地图X位置
int16 nMapY;// 地图Y位置
int16 nRelativePosX;// 人物相对地图X位置
int16 nRelativePosY;// 人物相对地图Y位置
int16 nPosX;// 人物在屏幕的X位置
int16 nPosY;// 人物在屏幕的Y位置
int8 nCurFaceX;// 人物当前朝向
}InitStageData;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -