资源简介
大一下小学期看了知乎上童晶老师的书《“c语言开发设计与游戏开发实践”》,看到飞机大战
那部分兴致大增,遂决定自己也来写一个。
程序用的是单纯的C语言,调用了EasyX库的函数。
编译环境:Visual Studio ,VC6.0。
内容:对书本中原有代码进行了扩充:包括子弹种类;子弹形态、数目的改变;敌机种类;BOSS;速度and so on。
其中子弹,补给包的遮罩图都是用PS自己画的,boss和其发射的激光炮都是网上的,激光炮是不是有点眼熟呢勇士~

代码片段和文件信息
#include
#include
#include
#include
// 引用 Windows Multimedia API
#pragma comment(lib“Winmm.lib“)
#define High 579 // 游戏画面尺寸
#define Width 1024
IMAGE img_bk; // 背景图片
float position_xposition_y; // 飞机位置
float bullet_xbullet_y; // 子弹位置
float enemy_xenemy_y; // 敌机位置
float enemy2_xenemy2_y;// 敌机位置
float enemy3_xenemy3_y;// 敌机位置
IMAGE img_planeNormal1img_planeNormal2; // 正常飞机图片
IMAGE img_planeExplode1img_planeExplode2; // 爆炸飞机图片
IMAGE img_bullet1img_bullet2; // 子弹图片
IMAGE img_enemyPlane1img_enemyPlane2img_enemyPlane3img_enemyPlane4; // 敌机图片
int isExpolde = 0; // 飞机是否爆炸
int shengming = 3;//生命
int score = 0; // 得分
int guanka=1;//关卡
int temp=2;
int gameStatus = 0; // 游戏状态,0为初始菜单界面,1为正常游戏,2为结束游戏状态,3为游戏暂停
void startMenu(); // 初始菜单界面
void pauseMenu(); // 游戏暂停后菜单界面,一般按ESC键后启动该界面
void startup(); // 数据初始化
void show(); // 显示画面
void updateWithoutInput(); // 与用户输入无关的更新
void updateWithInput(); // 与用户输入有关的更新
void gameover(); // 游戏结束、后续处理
void readRecordFile(); //读取游戏数据文件存档
void writeRecordFile(); //存储游戏数据文件存档
void startMenu() // 初始菜单界面
{
putimage(0 0 &img_bk); // 显示背景
setbkmode(TRANSPARENT);
settextcolor(BLACK);
settextstyle(500 _T(“黑体“));
outtextxy(Width*0.3 High*0.2 “1 新游戏“);
outtextxy(Width*0.3 High*0.3 “2 读取游戏存档“);
outtextxy(Width*0.3 High*0.4 “3 退出“);
settextcolor(BLUE);
settextstyle(300 _T(“黑体“));
outtextxy(Width*0.25 High*0.6 “鼠标移动控制飞机移动“);
outtextxy(Width*0.25 High*0.65 “鼠标左键发射子弹“);
outtextxy(Width*0.25 High*0.7 “ESC键暂停游戏“);
outtextxy(Width*0.25 High*0.75 “撞击后按任意键重新开始“);
FlushBatchDraw();
Sleep(2);
char input;
if(kbhit()) // 判断是否有输入
{
input = getch(); // 根据用户的不同输入来移动,不必输入回车
if (input == ‘1‘)
gameStatus = 1;
else if (input == ‘2‘)
{
readRecordFile();
gameStatus = 1;
}
else if (input == ‘3‘)
{
gameStatus = 2;
exit(0);
}
}
}
void pauseMenu() // 游戏暂停后菜单界面,一般按ESC键后启动该界面
{
putimage(0 0 &img_bk); // 显示背景
setbkmode(TRANSPARENT);
settextcolor(BLACK);
settextstyle(500 _T(“黑体“));
outtextxy(Width*0.3 High*0.2 “1 继续游戏“);
outtextxy(Width*0.3 High*0.3 “2 保存档案“);
outtextxy(Width*0.3 High*0.4 “3 退出“);
settextcolor(BLUE);
settextstyle(300 _T(“黑体“));
outtextxy(Width*0.25 High*0.6 “鼠标移动控制飞机移动“);
outtextxy(Width*0.25 High*0.65 “鼠标左键发射子弹“);
outtextxy(Width*0.25 High*0.7 “ESC键暂停游戏“);
outtextxy(Width*0.25 High*0.75 “撞击后按任意键重新开始“);
FlushBatchDraw();
Sleep(2);
char input;
if(kbhit()) // 判断是否有输入
{
input = getch(); // 根据用户的不同输入来移动,不必输入回车
if (input == ‘1‘)
gameStatus = 1;
else if (input == ‘2‘)
{
writeRecordFile();
gameStatus = 1;
}
else if (input == ‘3‘)
{
gameStatus = 2;
exit(0);
}
}
}
void readRecordFile() //读取游戏数据文件存档
{
FILE *fp;
fp = fopen(“.\\gameRecord.dat““r“);
fscanf(fp“%f %f %f %f %f %f %d %d“&position_x&position_y&bullet_x&bullet
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-05 21:26 小学期-游戏设计\
文件 743578 2017-04-12 08:10 小学期-游戏设计\6.4 带读档存档功能的飞机大战.wmv
目录 0 2018-07-05 21:25 小学期-游戏设计\debug\
文件 26782 2015-01-16 21:10 小学期-游戏设计\debug\10.mp3
文件 30962 2015-01-16 21:10 小学期-游戏设计\debug\5.mp3
文件 85744 2018-07-05 15:55 小学期-游戏设计\debug\background.jpg
文件 8927 2017-04-10 20:08 小学期-游戏设计\debug\bullet1.jpg
文件 8931 2017-04-10 20:03 小学期-游戏设计\debug\bullet2.jpg
文件 18635 2017-04-10 20:48 小学期-游戏设计\debug\enemyPlane1.jpg
文件 26536 2017-04-10 20:51 小学期-游戏设计\debug\enemyPlane2.jpg
文件 4910 2018-07-05 20:03 小学期-游戏设计\debug\enemyPlane3.jpg
文件 6489 2018-07-05 19:56 小学期-游戏设计\debug\enemyPlane4.jpg
文件 18389 2011-12-31 17:43 小学期-游戏设计\debug\explode.mp3
文件 13085 2015-01-15 16:54 小学期-游戏设计\debug\f_gun.mp3
文件 68 2018-07-05 16:41 小学期-游戏设计\debug\gameRecord.dat
文件 117478 2013-08-24 23:26 小学期-游戏设计\debug\game_music.mp3
文件 6018 2014-11-17 21:36 小学期-游戏设计\debug\gotEnemy.mp3
文件 24124 2017-04-10 21:36 小学期-游戏设计\debug\planeExplode_1.jpg
文件 23501 2017-04-10 21:34 小学期-游戏设计\debug\planeExplode_2.jpg
文件 22520 2017-04-10 21:27 小学期-游戏设计\debug\planeNormal_1.jpg
文件 20090 2017-04-10 21:29 小学期-游戏设计\debug\planeNormal_2.jpg
文件 254976 2018-07-05 21:25 小学期-游戏设计\debug\vc60.idb
文件 77824 2018-07-05 21:25 小学期-游戏设计\debug\vc60.pdb
文件 303202 2018-07-05 21:25 小学期-游戏设计\debug\带读档存档功能的飞机大战.exe
文件 625932 2018-07-05 21:25 小学期-游戏设计\debug\带读档存档功能的飞机大战.ilk
文件 48753 2018-07-05 21:25 小学期-游戏设计\debug\带读档存档功能的飞机大战.obj
文件 4033680 2018-07-05 16:02 小学期-游戏设计\debug\带读档存档功能的飞机大战.pch
文件 689152 2018-07-05 21:25 小学期-游戏设计\debug\带读档存档功能的飞机大战.pdb
文件 10978 2018-07-05 21:26 小学期-游戏设计\带读档存档功能的飞机大战.cpp
文件 3619 2018-07-05 19:10 小学期-游戏设计\带读档存档功能的飞机大战.dsp
文件 556 2018-07-05 21:26 小学期-游戏设计\带读档存档功能的飞机大战.dsw
............此处省略3个文件信息
相关资源
- 国际象棋的qt源代码
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 移木块游戏,可以自编自玩,vc6.0编写
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- C++纯文字DOS超小RPG游戏
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
评论
共有 条评论