• 大小: 0.07M
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: C/C++
  • 标签: 其他  

资源简介

tkdz.cpp

资源截图

代码片段和文件信息

#include 
#include 
#include  
                           //里规格:长39*2=78 (真坐标)(假坐标宽为39)  高39
                           //外规格:长41*2=82 (真坐标)(假坐标宽为41)  高41
#define UP    1
#define DOWN  2
#define LEFT  3
#define RIGHT 4
#define MAX_LEVEL 8
#define BULLET_NUM 20
#define MAX_LIFE 4
 
//程序中未写入函数参数表中且未说明的变量只有map二维数组level_info数组和level   
 
/*
      此程序中涉及的xy类的坐标值,分为以下两种:                                 
                                                                                                  
假坐标:这里的坐标指的是以一个■长度为单位的坐标,而不是真正的coord坐标 (用于map数组的坐标)                             
                                                                                                  
真坐标:头文件自带的坐标结构coord中的坐标(也可以说是控制台里的真正坐标值)                                 
                                                                                                  
  区别:纵坐标y两值一致,假横坐标x值与真正coord横坐标(真坐标)关系是 x * 2 = coord 横坐标    
                                                                                                            
  coord横坐标既指GoTo函数中的x参数因为本程序游戏界面以一个■长度为基本单位,                    
                                                                                                  
  可以说涉及的coord横坐标全是偶数。既假坐标要变真坐标(变真坐标才能发挥真正作用),横坐标须乘以2                                    
                                                           
*/
typedef struct             //这里的出现次序指的是一个AI_tank变量中的次序,游戏共有四个AI_tank变量
{                          //∵设定每个AI_tank每种特殊坦克只出现一次 ∴fast_tank & firm_tank 最多出现次数不超过1
int fast_tank_order;   //fast_tank出现的次序(在第fast_tank_order次复活出现从第0次开始),且每个AI_tank只出现一次
int firm_tank_order;   //firm_tank出现的次序,同上
} LevInfo;                 //关卡信息(准确说是该关出现的坦克信息)
LevInfo level_info [MAX_LEVEL] = {{-1-1}{3-1}{-13}{23}{23}{23}{23}{23}};   //初始化,-1代表没有该类型坦克
 
 
typedef struct      //子弹结构体
{
int xy;        //子弹坐标假坐标
int direction;  //子弹方向变量
bool exist;     //子弹存在与否的变量1为存在,0不存在
bool initial;   //子弹是否处于建立初状态的值,1为处于建立初状态,0为处于非建立初状态
bool my;        //区分AI子弹与玩家子弹的标记0为AI子弹,1为玩家(我的)子弹
} Bullet;
Bullet bullet [BULLET_NUM];  //考虑到地图上不太可能同时存在20颗子弹,所以数组元素设置20个
 
 
typedef struct      //坦克结构体
{
int xy;        //坦克中心坐标
int direction;  //坦克方向
int color;      //颜色参方向数,1到6分别代表不同颜色,具体在PrintTank函数定义有说明
int model;      //坦克图案模型,值为123,分别代表不同的坦克图案0为我的坦克图案,AI不能使用
int stop;       //只能是AI坦克使用的参数,非0代表坦克停止走动0为可以走动
int revive;     //坦克复活次数
int num;        //AI坦克编号(固定值,为常量,初始化函数中定下)0~3
int CD;         //发射子弹冷却计时
bool my;        //是否敌方坦克参数,我的坦克此参数为1为常量
bool alive;     //存活为1,不存活为0
}  Tank;
Tank AI_tank[4]  my_tank;  //my_tank为我的坦克,Ai_tank 代表AI坦克
 
//∵所有的函数都有可能对全局变量map进行读写(改变),
//∴函数中不另说明是否会对全局变量map读写
//基本操作与游戏辅助函数
void GoToxy(int xint y);    //光标移动
void HideCursor();           //隐藏光标
void keyboard ();            //接受键盘输入
void Initialize();           //初始化(含有对多个数据的读写)
void Stop();                 //暂停
void Getmap();               //地图数据存放与获取
void

评论

共有 条评论