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

📄 ball.h

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 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 + -