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

📄 tank.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
#ifndef TANK_H
#define TANK_H
#define TANK_DEBUG                             0       //调试用的                  
#define GAME_PASSWORD        //需密码进入
#define TANKLEFT_EASY                        4       //简单电脑每个位置的数量
#define TANKLEFT_NOMAL                     5    //中等。。。。
#define TANKLEFT_DIFFICULTY             6    //困难。。。。
#define TANKSET_EASY_MAXNUM          4    //游戏设置简单时敌人坦克和子弹的最大数量
#define TANKSET_NOMAL_MAXNUM       6    //。。。
#define TANKSET_DIF_MAXNUM            8    //。。。
#define TREES_MAXNUM                        10  //树的最大数量

#define PLAYTANKSPEED0         4        //
#define PLAYTANKSPEED1         2


#define ENEMYTANKSPEED0                   4    //  3               敌人0的坦克速度
#define ENEMYTANKSPEED1                   3     //   2            .........
#define ENEMYTANKSPEED2                   4    //  2
#define ENEMYTANKSPEED3                   2        //  2
#define ENEMYTANKSPEED4                   4         //  3
#define ENEMYTANKSPEED5                   3          //  2


#define ENEMYTANKSCORE0                   30   //敌人0的分植
#define ENEMYTANKSCORE1                   40
#define ENEMYTANKSCORE2                   100
#define ENEMYTANKSCORE3                   100
#define ENEMYTANKSCORE4                   50
#define ENEMYTANKSCORE5                   60
#define ENEMYSPEEDZEROTIME            120         //敌人定适奔浔
#define PLAYERTANKFLASHTIME            80               //坦克出生时的无敌状态持续的时间
#define PLAYERTANKUNDEADTIME        160                //获得物品的无敌时间
#define PARTPROTECTIONTIME             200            //城堡无敌的时间
#define TIMERPERIOD_GAMEIN        16   //游戏中
#define FRAME_PER_SEC                       12            //200/TIMERPERIOD_GAMEIN     //每秒的侦数
#define TIMERPERIOD_GAMEOVER        100          //游戏结束的过度,
#define MOVIEPLAYMAX                20         //最大播放动画数目
#define MAPSIZE          28         //地图大小减1
#define MAXBARRIER     21      //最大关卡数
#define MOVEPASSMAX                3      //最大可通过地图块编号0-3
#define BULLETPASSMAX                   7      //最大子弹可通过地图块编号4-7
#define BRICKTile                         8          //砖块
#define DAMAGEDBrick                           9          //受损砖块地图块编号
#define TERRENEWall                             10         //土块编号,可一枪击碎的
#define DEFALTTitle                               11         //暂时没用的
#define RCTile                                        12         //完整的混凝土块13、14和15为受损的混凝土块,打一枪则加一
#define FIRMNESSTile                            16         //16和17为永固地图块编号
#define PARKTILE                                   18         //18、19、20、21为老巢地图块
#define MOVIEMAX                      12      //最大动画数目
#define MAPWIDTHMAX               28      //地图宽
#define MAPHIGHMAX                      28      //地图高
#define TILWID                        8      //地图块宽
#define TILHIG                        8      //地图块高
#define MAXLIFT                        6      //最多生命
#define SCREENX                        8      //屏幕其始坐标
#define SCREENY                        8      //屏幕其始坐标
#define BULLETWID                                12                                       //子弹宽度
#define BULLETHIG                                 12                                      //子弹高度
#define MOSTTANKAREA                         10                                     //屏幕上最大坦可数目          
#define MOSTBULLETAREA    30                                    //屏幕上最大子弹树木
#define X_DIR                                         1                                     //x方向
#define Y_DIR      2        //y方向
#define FLASHMEMERYFREE                    50                                  //小于该容量是不写记录
#define TANKALARMTIMER                      5                                   //坦克中闹铃提示的时间澹
#define EASYAI                                        15                                   //容易的ai值
#define MIDAI                                          80                                   //中等的ai值
#define HARDAI                                        95                                   //困难的ai值
//#define TANK_GAME_PASSWORD            1
#define TANKSNDDEFCLOSE                    1                                   //刚进去游戏默认声音为关
#define SCREENWID                      (TILWID*MAPWIDTHMAX) //屏幕宽
#define SCREENHIG                      (TILHIG*MAPHIGHMAX)  //屏幕高
//#define GetPositiveRand(a)               abs(GetRand(a))               //得到正的随即数
#define DIVIDE8(a)                             (a>>3)                           //除于8
#define MULTIPLY8(a)                            (a<<3)                          //乘于8
#define GAME_DIR        "A:\\系统    \\数据    \\游戏    \\"          //游戏数据路径
#define GAME_TANKMAP_DIR      "A:\\系统    \\数据    \\游戏    \\MAPTANK \\"  //地图路径
#define PASSWORDPATH    "A:\\系统\\配置"
#define SHOW_BACK_MAP         10
#define SHOW_BACK_STAGE       11
#define SHOW_STAGE_NUM   12
#define SHOW_MAP_BACK         20
#define SHOW_MAP              21
#define SHOW_INFSHOW          22
#define SHOW_MAP_OVER         28
#define CHANGE_DIR            1





//typedef unsigned char   BOOLEAN;


enum FACETO {FACETOUP, FACETORIGHT, FACETODOWN, FACETOLEFT};
enum GAMESTATUS {COMMON, LOSS, WON};
enum GOODSTYPE {FIREPOWER, BOMB, LIFE, BODYSTRONGER, PROTECTION, TIMER, MONEY100, MONEY200, UNDEAD};



//enum dd {FACETOUP,FACETORIGHT,FACETODOWN,FACETOLEFT};


typedef struct
{
    INT8U width;
    INT8U high;
    INT8U maptiles_id[MAPWIDTHMAX*MAPHIGHMAX];
}MapType;

typedef struct
{
    INT8U x;
    INT8U y;

}POINT;

typedef struct
{
    int active;    //是否有效
    int speed;    //速度
    int dir;    //方向
    int power;    //威力
    int x;     //坐标
    int y;     //坐标
    int wid;    //宽
    int hig;    //高
    int bullet_id;   //图片
}GameTankBullet;  //炮火结构

typedef struct
{
    int active;    //是否有效
    int score;
    int life;    //生命
    int speed;    //速度
    int dir;    //方向
    int status;    //状态
    int timer;    //累时
    int x;     //坐标
    int y;     //坐标
    int wid;    //宽
    int hig;    //高
    int bullettype;   //炮火类型
    int tank_id;   //图片
}GameTank;    //坦克结构

typedef struct
{
    int active;    //是否有效
    int size;          //动画图片大小 为size*size大小
    int x;     //坐标
    int y;     //坐标
    int replay;        //重复播放标志
    int movie_frame_flag;  //目前是第几祯
    int maxframe;           //最大的祯数目
    int moviepic_startid;  //图片
}GameMovie;     //动画结构

typedef struct
{
    short Left;
    short Right;
    short Up;
    short Down;
    short Fire;
    short Quit;
}GameTankEventType;   //游戏事件结构

typedef struct
{
    int active;    //有效标志
    int clock;    //剩余时间
    int type;    //类型
    int x;     //坐标
    int y;     //坐标
    int wid;    //宽
    int hig;    //高
    int goods_id;  //图片,要制造出闪烁的效果
}Goods;      //物品结构

typedef struct
{
    GameTank CurrentPlayer[1];        //坦克状态
    int CurrentPlayerleft[1];              //人数
    INT16U CurrentGameScores[1];  //分数
    unsigned char CurrentBarrier; //关数
    int GameDifficult;                     //游戏难度
} CurrentBarrierState;                 //上一关的状态

typedef struct
{
    INT16U timer;          //定时器句柄
    int gamestatus;         //游戏状态
    int lossclock;          //累时1
    int wonclock;                                                                 //累时2
    int timflag;                                                 //跳转的标志
    int parttimer;                                            //宝物城墙护甲快消失时的显示
    int parkflag;                                              //输赢的标志
    int barriesflag;                                           //当前关数
    int  rank;                                               //游戏音量
    int tanktypechoce;                               //游戏中玩家坦克类型
    int tankleverchoce;                             //游戏难度
    int SoundFileExist;                                  //声音文件是否存在
    int TankSoundOpen;                                //声音文件是否打开
    int CopyPreGameState;                           //是否复制上一关的状态,游戏重新开始
    CurrentBarrierState CurrentGameState; //上一关的状态
    GameTankBullet playerbullet[1][4][5];   //炮弹,前一维表示坦克的编号,后一维表示炮弹的方向,第三维表示该方向上的第几颗子弹
    GameTankBullet enemybullet[8];     //炮弹
    Goods goods;         //物品
    int hightscore;         //高分记录
    GameTank player[1];        //主角
    INT16U scores[1];         //得分
    int playerleft[1];        //主角剩余生命数目
    int TankLeftAdd;
    GameTank enemy[8];        //敌人
    int enemyleft[4];        //各种类剩余敌人数目
    GameMovie movie[MOVIEPLAYMAX];       //动画
    MapType map;         //地图
    GameTankEventType events[1];     //游戏事件
    int quit;          //退出标志
}GameTankType;   //游戏结构
typedef struct _TANK_SAVE
{
    unsigned long size;
    char            Name[32];//键名字,用于查找
    int             GameType;
    int             GameLevel;
    int            rank;
    int            barriesflag;

    int        gamescors[10];
    int         sflag;
} TANK_SAVE;
#endif

⌨️ 快捷键说明

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