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

📄 bmshow.h

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 H
字号:
\
#ifndef _BMSHOW_H_
#define _BMSHOW_H_

#ifdef  OSD_GAME_SOKOBAN

#define MAX_BOX_NO                6
#define GetBMPos(a)               ((a) * 28)
#define SetBoxfg(a)               (_bfgApBox | (0x01 << (a)))
#define ClrBoxfg(a)               (_bfgApBox & (~(0x01 << (a))))
#define fgBox(a)                  (_bfgApBox & (0x01 << (a)))

#define SI_MAN_X                  wSIItemPos(SI_OSD_GAME_START_GRP, 1)
#define SI_MAN_Y                  wSIItemPos(SI_OSD_GAME_START_GRP, 2)
#define SI_BOX_X_START            wSIItemPos(SI_OSD_GAME_START_GRP, 3)
#define SI_BOX_X(a)               (SI_BOX_X_START + (a) * 2)
#define SI_BOX_Y(a)               (SI_BOX_X_START + (a) * 2 + 1)
#define SI_BOX_POS_SIZE           (MAX_BOX_NO * 2)

#define SI_SHIFT_SR_X             (SI_BOX_X_START + SI_BOX_POS_SIZE)
#define SI_SHIFT_SR_Y             (SI_SHIFT_SR_X + 1)
#define SI_SHIFT_DS_X             (SI_SHIFT_SR_X + 2)
#define SI_SHIFT_DS_Y             (SI_SHIFT_SR_X + 3)

#define SI_MEM_SHIFT_START        (SI_SHIFT_SR_X + 4)
#define SI_MEM_OREN(a)            (SI_MEM_SHIFT_START + (a) * 2)
#define SI_MEM_BOXID(a)           (SI_MEM_SHIFT_START + (a) * 2 + 1)

#define SI_GAME_SHAR_SIZE         256
#define MAX_REBACK_STEP           ((SI_GAME_SHAR_SIZE - 18) / 2)

#define BOXMAN_MAP_START_X        4
#define BOXMAN_MAP_START_Y        0
#define BOXMAN_BMP_WIDTH          28
#define BOXMAN_BMP_HEIGHT         28

#define BM_INFO_PANE              (0x01 << 0)
#define BM_INFO_GRADE             (0x01 << 1)
#define BM_INFO_PUSH_STEP         (0x01 << 2)
#define BM_INFO_REBACK_STEP       (0x01 << 3)
#define BM_INFO_REBACKED_STEP     (0x01 << 4)
#define BM_INFO_ANSWER            (0x01 << 5)
#define BM_INFO_START             (0x01 << 6)
#define BM_INFO_PLAYING           (0x01 << 7)
#define BM_INFO_ALL1              (0x7F)
#define BM_INFO_ALL2              (0xBF)
#define BM_INFO_NS                (8)

// Grade / Push Step / Reback Step / Rebacked Step / Answer
#define BM_INFO_BUTTON_SPACE      12
#define BM_INFO_BUTTON_WIDTH1     160
#define BM_INFO_BUTTON_HEIGHT1    38
#define BM_INFO_BUTTON_START_X1   (GAME_INFO_START_X + (GAME_INFO_WIDTH - BM_INFO_BUTTON_WIDTH1) / 2)
#define BM_INFO_BUTTON_END_X1     (BM_INFO_BUTTON_START_X1 + BM_INFO_BUTTON_WIDTH1)
#define BM_INFO_VALUE_START_X     (BM_INFO_BUTTON_START_X1 + 100)

// Start / Playing
#define BM_INFO_BUTTON_WIDTH2     80
#define BM_INFO_BUTTON_HEIGHT2    38
#define BM_INFO_BUTTON_START_X2   (GAME_INFO_START_X + (GAME_INFO_WIDTH - BM_INFO_BUTTON_WIDTH2) / 2)
#define BM_INFO_BUTTON_END_X2     (BM_INFO_BUTTON_START_X2 + BM_INFO_BUTTON_WIDTH2)
#define BM_INFO_BUTTON_START_Y2   (BM_INFO_BUTTON_END_Y2 - BM_INFO_BUTTON_HEIGHT2)
#define BM_INFO_BUTTON_END_Y2     (GAME_INFO_END_Y - BM_INFO_BUTTON_SPACE)

// Bad position warning
#define BM_BAD_POSI_WARN_WIDTH    GAME_WORK_WIDTH
#define BM_BAD_POSI_WARN_HEIGHT   60
#define BM_BAD_POSI_START_X       GAME_WORK_START_X
#define BM_BAD_POSI_START_Y       (BM_BAD_POSI_END_Y - BM_BAD_POSI_WARN_HEIGHT)
#define BM_BAD_POSI_END_X         GAME_WORK_END_X
#define BM_BAD_POSI_END_Y         GAME_WORK_END_Y

void vDrawMap(BYTE bBmpId, BYTE bBmpX, BYTE bBmpY) large;
void vDrawBox(BYTE bBoxId) large;
void vDrawMan(BYTE bManPosX, BYTE bManPosY) large;
void vBoxManShowMap(void) large;
void vBoxManShowInfo(BYTE bInfo) large;
void vHiliBoxManMenuItem(BYTE bItem, BYTE bState) large;
void vBoxManShowDialog(void) large;
void vHiliBoxManDialogItem(BYTE bItem, BYTE bStste) large;
void vShowBmBadPosiWarn(void) large;
void vClrBmBadPosiWarn(void) large;
#endif

#endif

⌨️ 快捷键说明

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