📄 ppdefine.h
字号:
// PPDefine.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 "AEESoundPlayer.h"
#include "AEEHeap.h"
#include "AEEBitmap.h"
#include "AEESprite.h"
#include "AEEGraphics.h"
#include "pp.bid"
#include "pp_res.h"
/*************************************** 宏定义 ************************************/
// 开始检验
#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 AVLID_KEY_PRESS_NUM 0 // 无效按键次数
#define ALL_MAIN_MENU_COUNT 6 // 主菜单总数
#define ALL_SET_MENU_COUNT 2 // 设置菜单总数
#define ALL_GAME_MENU_COUNT 3 // 游戏菜单总数
#define NO_KEY_PRESS_COUNT 200 // 未按键次数
#define MENU_TEXT_NUM 20 // 菜单文字个数
#define SCREEN_PROPERTY_WIDTH 128 // 屏幕长属性
#define SCREEN_PROPERTY_HIGTH 144 // 屏幕高属性
#define TIME_VIEW 50 // 设置开始视图的图片切换定时器是1s, 但是50ms是判断有没有键按下
#define TIME_GAME_VIEW 50 // 游戏定时器,20ms
#define KEY_PRESS_RESPOND 250 // 按键灵敏度,250ms
//#define DEFAUL_RES_FILE "PP.bar"// 资源文件名
#define SCORE_FILE_NAME "list.dat" // 排行榜文件
#define SOUND_CFG_FILE "SoundCfg.dat"// 声音配置文件
#define DIAMOND_ROW 10 // 定义当前最多六行钻石
#define DIAMOND_COL 9 // 定义当前最多五列钻石
#define DIAMOND_PARAM 3 // 定义当前钻石的属性
#define GAME_LINE_PARAM 2 // 游戏钻石行属性,表示还剩几行钻石过关
// 各位图索引
// 起始视图
#define EMONTERNET_INDEX 0 // 移动标志BMP位图索引
#define EBOX_INDEX 1 // 盒子BMP位图索引
#define ESTART_INDEX 2 // 开始BMP位图索引
// 菜单视图
#define EMAINMENUBACK1_INDEX 0 // 主菜单背景1BMP位图索引
#define EMAINMENUBACK2_INDEX 1 // 主菜单背景2BMP位图索引
#define EMENUTEXT_INDEX 2 // 主菜单BMP位图索引
#define IDB_FANGKUAI_INDEX 3 // 方块BMP位图索引
// 关于、帮助
#define IDB_BACKGROUND_INDEX 0 // 背景BMP位图索引
#define IDB_ABOUT_INDEX 1 // 关于BMP位图索引
#define IDB_HELP_INDEX 1 // 帮助BMP位图索引
// 演示、游戏
#define IDB_GAMEBACK_INDEX 0 // 游戏背景BMP位图索引
#define IDB_DIAMOND_INDEX 1 // 钻石BMP位图索引
#define IDB_BROW_INDEX 2 // 人物表情位图索引
#define IDB_SELECT_INDEX 3 // 选择BMP位图索引
#define IDB_BLAST_INDEX 4 // 爆炸BMP位图索引
#define IDB_DATA_INDEX 5 // 数字、字母
// 游戏菜单
#define IDB_GAMEMENUTEXT_INDEX 0 // 游戏菜单
#define IDB_GAMEMENUBACK_INDEX 1 // 游戏菜单背景
//#define IDB_BACKGROUND_INDEX 1 // 背景BMP位图索引
//#define IDB_BROW_INDEX 4 // 表情BMP位图索引
//#define IDB_GAMEMENU_INDEX 8 // 游戏菜单BMP位图索引
//#define IDB_LOGO_INDEX 10// 标志BMP位图索引
//#define IDB_POINT_INDEX 15// 点BMP位图索引
enum EKEYCODE
{
EKEY_UP = 0, // 上方向键
EKEY_DOWN = 1, // 下方向键
EKEY_LEFT = 2, // 左方向键
EKEY_RIGHT = 3, // 右方向键
EKEY_SELECT = 4, // 确定
EKEY_LEFTSOFT = 5, // 左软键
EKEY_RIGHTSOFT = 6 // 右软键
};
// 主菜单
enum MAINMENU
{
EMENU_START = 1, // 开始
EMENU_DEMO, // 演示
EMENU_SET, // 设置
EMENU_HELP, // 帮助
EMENU_ABOUT, // 关于
EMENU_STOP // 结束
};
// 主菜单文字
enum MENUTEXT
{
START_NORMAL = 0, // 开始普通
START_LIGHT, // 开始高亮
DEMO_NORMAL, // 演示普通
DEMO_LIGHT, // 演示高亮
SET_NORMAL, // 设置普通
SET_LIGHT, // 设置高亮
HELP_NORMAL, // 帮助普通
HELP_LIGHT, // 帮助高亮
ABOUT_NORMAL, // 关于普通
ABOUT_LIGHT, // 关于高亮
EXIT_NORMAL, // 退出普通
EXIT_LIGHT // 退出高亮
};
// 设置视图的菜单
enum SETVIEWMENU
{
EMENU_OPEN_SOUND = 1, // 声音开
EMENU_CLOSE_SOUND // 声音关
};
enum SETVIEWMENUTEXT
{
OPEN_SOUND_NORMAL = 12, // 声音开普通
OPEN_SOUND_LIGHT, // 声音开高亮
CLOSE_SOUND_NORMAL, // 声音关普通
CLOSE_SOUND_LIGHT // 声音开高亮
};
// 游戏菜单
enum GAMEMENU
{
EMENU_RETURN_GAME = 1, // 回到游戏
EMENU_SOUND_OPEN = 2, // 声音开
EMENU_SOUND_CLOSE = 3, // 声音关
EMENU_RETURN_MENU = 4 // 返回菜单
};
enum GAMEMENUTEXT
{
RETURN_GAME_NORMAL = 0, // 回到游戏普通
RETURN_GAME_LIGHT = 1, // 回到游戏高亮
SOUND_OPEN_NORMAL = 2, // 声音开普通
SOUND_OPEN_LIGHT = 3, // 声音开高亮
SOUND_CLOSE_NORMAL = 4, // 声音关普通
SOUND_CLOSE_LIGHT = 5, // 声音关高亮
RETURN_MENU_NORMAL = 6, // 回到菜单普通
RETURN_MENU_LIGHT = 7, // 回到菜单高亮
};
// 绘图对齐方式
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)
};
// 排行榜数据
typedef struct _SGameScore
{
int nScore;
int nLevel;
}GAMESCORE;
// 声音配置文件
typedef struct _SSoundCfg
{
bool bOpenSound;
}SOUNDCFG;
// 当前选择框所在坐标,横向5个,纵向6个(从屏幕(0,17)开始 )
typedef struct _SSelectPoint
{
int16 ptx;// x坐标(存放数组位0~5)
int16 pty;// y坐标(存放数组位0~4)
int16 ptOldScreenX;// 原x屏幕坐标,0~105,每隔14是一个
int16 ptOldScreenY;// 原y屏幕坐标,0~126,每隔14是一个
int16 ptNewScreenX;// 新x屏幕坐标,0~105,每隔14是一个
int16 ptNewScreenY;// 新y屏幕坐标,0~126,每隔14是一个
}SELECTPOINT;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -