最近学习c语言,看了Mooc上童晶老师的课,用c和Easy x图形库写了一个简单的飞机大战,练练手,第一次写出完整的,虽然还有好多功能没有实现,但是也是有点成就感的,大家看看就好,不喜勿喷!!注:我是用vs2019写的,素材好像传不上,需要的私。

简单效果图如下:

#include<graphics.h>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<mmsystem.h>
#pragma comment(lib,"Winmm.lib")
#define high 640//定义画布大小
#define width 480IMAGE img_bk;//背景图片
IMAGE img_planeNormal_1, img_planeNormal_2;//飞机图片显示
IMAGE img_bullet_1, img_bullet_2;//飞机子弹
IMAGE img_enemyPlane_1, img_enemyPlane_2;//敌机
IMAGE img_planeBoom_1, img_planeBoom_2;//飞机相撞int position_x, position_y;//飞机坐标
int bullet_x, bullet_y;//子弹坐标
int enemyPlane_x, enemyPlane_y;//敌机坐标
int planBoom_x, planBoom_y;//爆炸坐标
int isExplode = 0;//飞机是否爆炸
int score = 0;void startup()//数据初始化
{mciSendString(_T("open E:\\游戏素材\\飞机大战\\game_music.mp3 alias bkmusic"), NULL, 0, NULL);mciSendString(_T("play bkmusic repeat"), NULL, 0, NULL);initgraph(width, high);loadimage(&img_bk, "E:\\游戏素材\\飞机大战\\background.jpg");//背景loadimage(&img_planeNormal_1, "E:\\游戏素材\\飞机大战\\planeNormal_1.jpg");//我方飞机loadimage(&img_planeNormal_2, "E:\\游戏素材\\飞机大战\\planeNormal_2.jpg");loadimage(&img_bullet_1, "E:\\游戏素材\\飞机大战\\bullet_1.jpg");loadimage(&img_bullet_2, "E:\\游戏素材\\飞机大战\\bullet_2.jpg");//子弹loadimage(&img_enemyPlane_1, "E:\\游戏素材\\飞机大战\\enemyPlane_1.jpg");loadimage(&img_enemyPlane_2, "E:\\游戏素材\\飞机大战\\enemyPlane_2.jpg");//敌机loadimage(&img_planeBoom_1, "E:\\游戏素材\\飞机大战\\planeBoom_1.jpg");loadimage(&img_planeBoom_2, "E:\\游戏素材\\飞机大战\\planeBoom_2.jpg");//碰撞position_x = width * 0.4;position_y = high * 0.7;bullet_x = position_x+45;bullet_y = -85;enemyPlane_x = 0.5 * width;enemyPlane_y = 0;planBoom_x =-100;planBoom_y = -100;BeginBatchDraw();
}
void show()//显示画面
{putimage(0, 0, &img_bk);//显示背景if (isExplode == 0){putimage(position_x, position_y, &img_planeNormal_1, NOTSRCERASE);putimage(position_x, position_y, &img_planeNormal_2, SRCINVERT);//显示飞机putimage(bullet_x, bullet_y, &img_bullet_1, NOTSRCERASE);putimage(bullet_x, bullet_y, &img_bullet_2, SRCINVERT);//显示子弹putimage(enemyPlane_x, enemyPlane_y, &img_enemyPlane_1, NOTSRCERASE);putimage(enemyPlane_x, enemyPlane_y, &img_enemyPlane_2, SRCINVERT);//显示敌机}else{putimage(planBoom_x, planBoom_y, &img_planeBoom_1, NOTSRCERASE);putimage(planBoom_x, planBoom_y, &img_planeBoom_2, SRCINVERT);outtextxy(width * 0.48, high * 0.48, _T("小辣鸡,这都能死!"));}TCHAR s[] = _T("得分:");outtextxy(width * 0.48, high*0.8 , s);char a[5];sprintf(a,"%d", score);outtextxy(width * 0.55, high*0.8, a);Sleep(20);FlushBatchDraw();
}
void updateWithoutInput()//与用户输入无关的更新
{if(bullet_y>-30)//子弹上升bullet_y = bullet_y - 5;if (enemyPlane_y < high)//敌机下落enemyPlane_y+=2;else{srand(time(NULL));enemyPlane_x =rand() % width;//随机生成新敌机enemyPlane_y = 0;}if (abs(enemyPlane_x - bullet_x) + abs(enemyPlane_y - bullet_y) < 70)//子弹击中敌机{srand(time(NULL));enemyPlane_x = rand() % width;enemyPlane_y = 0;score++;}if (abs(enemyPlane_x - position_x) + abs(enemyPlane_y - position_y) < 70)//敌机与我机碰撞{mciSendString("close boo", NULL, 0, NULL);mciSendString("open E:\\游戏素材\\飞机大战\\explode.mp3 alias boo", NULL, 0, NULL);//子弹爆炸音效mciSendString("play boo ", NULL, 0, NULL);planBoom_x = position_x;planBoom_y = position_y;isExplode = 1;}
}void updateWithInput()//与用户输入有关的更新
{MOUSEMSG m;//记录鼠标消息while (MouseHit()){m = GetMouseMsg();if (m.uMsg == WM_MOUSEMOVE)//鼠标移动时,飞机坐标变化{position_x = m.x;position_y = m.y;}else if (m.uMsg==WM_LBUTTONDOWN){mciSendString("close pi", NULL, 0, NULL);mciSendString("open E:\\游戏素材\\飞机大战\\f_gun.mp3 alias pi", NULL, 0, NULL);//子弹发射音效mciSendString("play pi ", NULL, 0, NULL);mciSendString("close ps", NULL, 0, NULL);mciSendString("open E:\\游戏素材\\飞机大战\\5.mp3 alias ps", NULL, 0, NULL);mciSendString("play ps ", NULL, 0, NULL);bullet_x = position_x+45;bullet_y = position_y - 50;}}
}int main()
{startup();//数据初始化while (1){show();//显示画面 updateWithoutInput();//与用户输入无关的更新updateWithInput();//与用户输入有关的更新}EndBatchDraw();return 0;
}

c语言+Easy X图形库实现飞机大战,源码加素材相关推荐

  1. python飞机大战源码素材包_小甲鱼python基础教程飞机大战源码及素材

    原博文 2018-12-22 23:32 − 百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取 ...

  2. python版飞机大战源码和素材免费

    个人写的python飞机大战 初学python 里面有两个版本 一个是多敌机版 一个是单敌机版 点击打开链接

  3. python飞机大战源代码-python飞机大战源码和素材

    1 importpygame2 from plane_sprites import * 3 4 5 classPlaneGame(object):6 """飞机大战主游戏 ...

  4. C语言飞机大战题目,C语言飞机大战源码.pdf

    C语言飞机大战源码.pdf include include include include include using namespace std; /* all the structures */ ...

  5. python飞机大战源代码-制作python程序windows安装包(飞机大战源码)

    本文以飞机大战源码为例: 1.首先使用pyinstaller -w xxx.py打包 -w的意思是不显示命令行:飞机大战源码由多个.py文件以及一些图片,音乐文件组成,我们将main.py打包, 其他 ...

  6. HTML5飞机大战源码下载

    原文:HTML5飞机大战源码下载 源代码下载地址:http://www.zuidaima.com/share/1735919460830208.htm

  7. 2020-10-19。小白自学:飞机大战源码改造。(新手入门,学习总结。从零开始,步步为营。不同版本,独立运行。完整代码,感谢原著。)

    #简介: #小白自学:飞机大战源码改造.(新手入门,学习总结.) #从零开始:完全重写代码框架.(步步为营,完整代码.) #简单就好:删除各种自定函数.(讨厌函数跳转,喜欢层次分明.) #文本归一:方 ...

  8. java飞机大战子弹怎么修改_java改版飞机大战源码

    [实例简介] 利用java写的飞机大战,有BOSS 导弹,散射子弹,追踪弹,清屏技能,爆炸效果等等.适合用来练习面向对象: [实例截图] [核心代码] 4692cf8f-6049-4755-a40a- ...

  9. 小甲鱼python小游戏“飞机大战”源码素材

    话不多说,链接奉上. 百度网盘链接: https://pan.baidu.com/s/1KkmCqCBJ2Jq_IrewovYPAQ 提取码:43av 注:需下载Python pygame包 下载方式 ...

  10. python3飞机大战源码及源码使用教程(让小白做出第一个小游戏)

    python3飞机大战 一.源代码使用教程及环境配置 1.环境配置 打开pycharm,进入file,打开settings 打开project interpreter,点击右上方 + 号 搜索pyga ...

最新文章

  1. HAL Flat Display Driver Demystified
  2. 三星T5 SSD制作ubuntu18.04随身携带即插即用与win10共享文件真爽~(简单粗暴安装大法一步到位)
  3. EL之GB(GBC):利用GB对多分类问题进行建模(分层抽样+调1参)并评估
  4. finereport 登录界面的代码文件_【干货下载】多彩包含网页登录界面等4款WEB模板素材作品集源文件...
  5. C语言重要知识点回顾
  6. 三星智能家居系统频繁故障 大批用户受到影响
  7. .net fileupload批量上传可删除_【JavaWeb基础】文件上传和下载(修订版)
  8. 编译原理 —— 1.1 什么是编译
  9. python读取文本数据--完善中
  10. WSL2构建android10+kernel源码适配pixel
  11. java类 (二):内部类
  12. CentOS 搭建pure-ftpd
  13. PCA、PCoA、NMDS、Anosim学习
  14. JS的浮点数计算精度丢失问题解决方案
  15. 分智评25位最受欢迎CEO 微软中国梁念坚居首
  16. 三、Android开启wifi热点
  17. SourceTeee 设置拉取时使用rebase
  18. Tensorflow:输出tensor具体值
  19. 迈向更小的.NET 4-有关客户端配置文件和下载.NET的详细信息
  20. Resid------set

热门文章

  1. h5页面如何切图_前端切图H5/网页切图/移动自适应H5/切图开发/H5响应式
  2. 学生选课系统简单说明
  3. winrar中文版去广告的方法,以winrar5.70简体中文版为例(其他版本也类似)
  4. ArcMap 入门教程
  5. 模拟电子技术基础笔记(1)
  6. aria2,破解限速的傻瓜式教程
  7. Linux BT下载(8)-种子解析模块设计与实现2
  8. vue加载中图片和加载失败图片的占位图
  9. Maven的安装与配置教程
  10. 【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type