基于链表操作的飞机大战游戏

目录

飞机大战结构体游戏三部曲初始化Game_Init()绘制Game_Paint()数据更新Game_Updata()主函数按键的处理说明链表的增删操作添加敌方飞机敌方飞机移动添加子弹子弹移动

飞机大战

基于链表操作的飞机大战游戏

结构体

定义飞机大战所需结构体并全局定义结构体成员

//子弹的结构体 
struct bullet
{
    int x;
    int y;
    struct bullet* pnext;
};
// 我方飞机   
struct plane  //我方飞机的结构体
{
    int x, y;           //飞机的坐标
    bool exist;         //飞机是否存活   exist==false(0)  飞机灭亡 ;  exist=ture(1) 飞机存在
    struct bullet* bt;  //子弹
};
//敌方飞机 
struct enemy
{
    int x, y; //敌方飞机的坐标
    struct enemy* pnext; //用来保存下一个飞机的地址 
};
struct plane myPlane;        //定义我方飞机的结构体变量.
struct enemy* emy_Phead;    //敌方飞机链表的头节点. 

游戏三部曲

游戏三部曲:初始化,绘制,数据更新

初始化Game_Init()

包括加载图片和初始化游戏数据

void Game_Init()
{
    loadimage();
    myPlane.y = 700;            
    myPlane.x = rand() % 500;   //范围 0~499 
    myPlane.exist = true;       //飞机存在为true
    //初始化子弹链表的头结点
    myPlane.bt = (struct bullet *)malloc(sizeof(struct bullet));
    myPlane.bt->pnext = NULL;

    //初始化敌方飞机的头结点
    emy_Phead = (struct enemy *)malloc(sizeof(struct enemy));
    emy_Phead->pnext = NULL;
    //初始化其他变量
    begin = GetTickCount();
    t1 = GetTickCount();
    g_bk.X = 0;
    g_bk.Y = 0;
    //开局先添加两架敌方飞机
    AddEnemy();
    AddEnemy();
}
绘制Game_Paint()

包含背景图片、我方飞机,敌方飞机、子弹的绘制

void Game_Paint()
{
    //开始批量绘图
    BeginBatchDraw();
    cleardevice();  //刷新屏幕
    /*========================贴背景图片========================*/

    putimage(g
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值