C语言

您所在的位置:网站首页 飞机大战游戏飞机图片 C语言

C语言

2024-04-07 21:03| 来源: 网络整理| 查看: 265

飞机大战小游戏(包含图片、音效) 示例演示:一.建立的全部源文件二、源代码1.飞机大战2.0 .cpp2.开场动画.cpp3.游戏结束.cpp4、头文件connect.h 三、图片资源四、参考文章和参考视频五、百度云下载六、缺陷七、操作飞机方法

示例演示:

C语言飞机大战小游戏

一.建立的全部源文件

在这里插入图片描述

二、源代码 1.飞机大战2.0 .cpp //----------------------------------------------------------------- // 《飞机大战2.0》 //作者:辰梦star_dream //最近修改时间:2021.8.12 //----------------------------------------------------------------- //----------------------------------------------------------------- //描述:头文件部分 //----------------------------------------------------------------- #include #include #include #include #include #include #include #include #include"connect.h"//将该项目中的其他源文件,联系起来 #pragma comment(lib,"winmm.lib") //----------------------------------------------------------------- //描述:宏定义部分 //----------------------------------------------------------------- #define WIDTH 800//画布宽度 #define HEIGHT 600//画布高度 #define BULLET_NUM 20//子弹数量 #define ENEMY_NUM 10//敌机的总数量 //----------------------------------------------------------------- //描述:枚举部分,敌机类型 //----------------------------------------------------------------- enum enemy_type//敌机的类型,分为BOSS 和 普通敌机 { BIG, //BOSS SMALL //普通敌机 }; //----------------------------------------------------------------- //描述:结构体部分 //----------------------------------------------------------------- ; struct player_game//飞机的结构 { int x;//玩家横轴坐标 int y;//玩家纵轴坐标 int player_hp;//玩家的生命值 bool live;//判断玩家、敌机是否存亡 int enemy_hp;//敌机的生命值 int enemy_width;//敌机的宽度 int enemy_height;//敌机的高度 int type;//敌机的类型,是普通敌机,还是BOSS }player, bullet[BULLET_NUM], enemy[ENEMY_NUM];//分别代表飞机,子弹,敌机 //----------------------------------------------------------------- //描述:全局变量定义部分 //----------------------------------------------------------------- int gt;//_getch()返回值 IMAGE bk;//定义图片 IMAGE player_plane[2];//定义玩家的飞机,掩码图与素材图 IMAGE player_bullet[2];//定义玩家的射击子弹,掩码图与素材图 IMAGE enemy_appear[2][2];//定义敌机出现 MOUSEMSG m;//定义鼠标 //----------------------------------------------------------------- // 描述:全局函数声明部分 //----------------------------------------------------------------- void load_image();//加载图片 void game_draw();//游戏绘制 void player_move(int speed);//玩家移动 void GameInit();//游戏初始化 void create_bullet();//创建子弹 void bullet_move(int bullet_speed);//子弹的移动,子弹向上,故只有纵轴(y轴)发生变化 void enemy_hp(int i);//敌机生命值 void create_enemy();//生成敌机 void enemy_move(int enemy_speed);//敌机的移动 bool timer(int ms, int num);//做个定时器,以毫秒计时 void attack_enemy();//玩家攻击敌机 void be_touched();//玩家碰到敌机 //----------------------------------------------------------------- // 描述:程序的“入口”,程序从此处开始 //----------------------------------------------------------------- int main() { //打开音乐 mciSendString("open ./music/bk_music.mp3 alias bk_music", NULL, 0, NULL); mciSendString("play bk_music repeat",NULL,0,NULL); initgraph(WIDTH, HEIGHT);//新建一个画布 // cartoon();//游戏开始时,播放的开场动画 GameInit();//游戏初始化 game_draw();//游戏画面展示 BeginBatchDraw();//批量处理 while (1) { FlushBatchDraw();//将缓存区的图,刷新出来 player_move(5);//玩家移动,移动速度 bullet_move(8);//子弹发射,移动速度8 if (timer(500, 1)) { create_enemy();//两个敌机的出现,相隔两秒钟 } enemy_move(2); attack_enemy();//攻击敌机 be_touched();//判断玩家是否碰触到敌机 if (!player.live)//判断玩家是否存活 { goto f;//玩家死亡,跳出循环 } else { continue;//玩家存活,则继续循环 } } f: mciSendString("stop bk_music", NULL, 0, NULL); GameOver();//飞机消亡后,跳转到游戏结束页面 gt = _getch(); EndBatchDraw();//结束批量处理,并将缓存区中未显示的都显示出来 closegraph(); return 0; } //----------------------------------------------------------------- // 描述:加载图片 //----------------------------------------------------------------- void load_image() { //加载图片 loadimage(&bk, "./image/background.jpg", WIDTH, HEIGHT);//背景图 loadimage(&player_plane[0], "./image/player_2.png", 50, 50);//飞机掩码图 loadimage(&player_plane[1], "./image/player_1.png", 50, 50);//飞机素材图 loadimage(&player_bullet[0], "./image/fireball_2.png", 15, 15);//子弹掩码图 loadimage(&player_bullet[1], "./image/fireball_1.png", 15, 15);//子弹素材图 loadimage(&enemy_appear[0][0], "./image/enemy_2.png", 40, 40);//敌机掩码图 loadimage(&enemy_appear[0][1], "./image/enemy_1.png", 40, 40);//敌机素材图 loadimage(&enemy_appear[1][0], "./image/enemyBoss_2.png", 80, 80);//敌机BOSS掩码图 loadimage(&enemy_appear[1][1], "./image/enemyBoss_1.png", 80, 80);//敌机BOSS素材图 } //----------------------------------------------------------------- // 描述:游戏绘制 //----------------------------------------------------------------- void game_draw() { load_image(); //显示图片 putimage(0, 0, &bk);//显示背景图 //贴飞机照片 if (player.live) { putimage(player.x, player.y, &player_plane[0], SRCAND);//贴掩码图,绘制出的像素颜色 = 屏幕颜色 & 图像颜色 putimage(player.x, player.y, &player_plane[1], SRCPAINT);//贴素材图 } //贴子弹照片 if (player.live) { for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3