📄 ball.h
字号:
#ifndef _BALL_H_
#define _BALL_H_
#ifdef _BALL_C_
#define BALL_EXTERN
#else
#define BALL_EXTERN extern
#endif
#ifdef OSD_GAME_BREAKOUT
// Breakout Main State
enum
{
BALL_MENU_STATE,
BALL_PLAY_STATE,
BALL_DIALOG_STATE,
BALL_STATE_NS
};
// Breakout Menu Item
enum
{
BALL_MENU_START,
BALL_MENU_GRADE,
BALL_MENU_NS,
BALL_MENU_MAX = BALL_MENU_NS - 1
};
// Breakout Dialog Sub-State
enum
{
BALL_DIALOG_AGAIN_STATE,
BALL_DIALOG_NEXT_STATE,
BALL_DIALOG_STATE_NS,
BALL_DIALOG_STATE_MAX = BALL_DIALOG_STATE_NS - 1
};
#define GetBlockXpos(x) ((x) << 4)
#define GetBlockYpos(y) ((y) << 3)
#define GetBlockXcoor(x) ((x) >> 4)
#define GetBlockYcoor(y) ((y) >> 3)
// #define GetFgYcoor(x, y) (((y) << 1) + ((x) >> 3))
#define BAR 0
#define BAR_EMPTY 1
#define BALL 2
#define BALL_EMPTY 3
#define BLOCK 4
#define BLOCK_EMPTY 5
#define GetBmpSizeId(x) ((x) >> 1)
#define GM_BALL_MAX_WIDTH 288
#define GM_BALL_MAX_HEIGHT 320
#define BALL_X_STEP 1
#define BALL_Y_STEP 4
#define BAR_X_STEP 16
// enum Orenx{LEFT, RIGHT};
#define BALL_LEFT 0
#define BALL_RIGHT 1
// enum Oreny{DOWN, UP};
#define BALL_UP 0
#define BALL_DOWN 1
#define GM_BALL_TIMER_INT 1
typedef struct
{
BYTE bBallXStep;
BYTE bBallYStep;
BYTE bBarXStep;
BYTE bTimerCount;
}sBallSpeed;
#define BALL_SPEED_NS 6
BALL_EXTERN code sBallSpeed _sGmBallSpeed[BALL_SPEED_NS]
#ifdef _BALL_C_
=
{
{1, 4, 8, 2},
{2, 4, 8, 2},
{1, 4, 16, 1},
{2, 4, 16, 1},
{1, 4, 24, 0},
{2, 4, 24, 0},
}
#endif
;
typedef struct
{
WORD x;
WORD y;
}sBallPos;
typedef struct
{
// 0 Byte
BYTE fgGmBallEnb:1;
BYTE fgGmBallButton:1;
BYTE reserved:6;
// 1 Byte
BYTE bOrenx; // ball move x orentation
// 2 Byte
BYTE bOreny; // ball move y orentation
// 3 Byte
BYTE bGmBallTimer;
// 4 Byte
BYTE bBallMinute;
// 5 Byte
BYTE bBallSecond;
// 6 Byte
BYTE bBall20Ms;
// 7 Byte
BYTE bBallSpeed;
// 8/9 Byte
WORD wBallScore;
// 10/11/12/13 Byte
sBallPos NowBallPos;
// 14/15/16/17 Byte
sBallPos NowBarPos;
}S_BREAKOUT_VAR;
#define _fgGmBallEnb _uGameVar.sBreaoutVar.fgGmBallEnb
#define _fgGmBallButton _uGameVar.sBreaoutVar.fgGmBallButton
#define _bOrenx _uGameVar.sBreaoutVar.bOrenx
#define _bOreny _uGameVar.sBreaoutVar.bOreny
#define _bGmBallTimer _uGameVar.sBreaoutVar.bGmBallTimer
#define _bBallMinute _uGameVar.sBreaoutVar.bBallMinute
#define _bBallSecond _uGameVar.sBreaoutVar.bBallSecond
#define _bBall20Ms _uGameVar.sBreaoutVar.bBall20Ms
#define _bBallSpeed _uGameVar.sBreaoutVar.bBallSpeed
#define _wBallScore _uGameVar.sBreaoutVar.wBallScore
#define _NowBallPos _uGameVar.sBreaoutVar.NowBallPos
#define _NowBarPos _uGameVar.sBreaoutVar.NowBarPos
void vSetBlockfg(BYTE i, BYTE j) large;
void vClrBlockfg(BYTE i, BYTE j) large;
BOOL fgGetBlockfg(BYTE i, BYTE j) large;
BOOL fgGetBlockfgPosi(WORD bx, WORD by) large;
void vGMBallTimer(void) large;
void vGameBallInit(void) large;
BOOL fgGmBallState(void) large;
void vGmBallExit(void) large;
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -