资源简介
大一下小学期看了知乎上童晶老师的书《“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个文件信息
相关资源
- 网络游戏脱机外挂(辅助)C++源码(
- 简易图书管理系统C语言
- VC++数字图像处理典型算法及实现
- 编译原理课程设计-C语言子集编译器
- 《面向对象的程序设计语言——C++》
- 银行账户管理系统C++
- VC++酒店客房管理系统 MFC
- 雷霆战机 c++源码
- 练习:基于c语言的8位二进制原码一位
- 车站计算机联锁vc++6.0程序代码
- MFC游戏——看看你能坚持几秒
- C++ 超市进销存管理系统源码
- (严版C语言版数据结构源码.rar
- APPLEII模拟器1.18含编程、诊断、游戏盘
- 外挂 源码 c++ vc 冒险岛
- 企业人事管理系统c++实现
- 一个C语言编译器源码
- 地铁计费系统C++实现dijkstra算法
- VC++编程的第一个MFC工程Hello World
- 通用弹道仿真计算程序(简版)V1.0
- 经典书籍《C++ Primer Plus 第6版 》 中文
- C语言模糊控制程序
- C++语言实现一些基本算法(两点距离
- C++编写的类似水果忍者的切水果的效
- C++实现的蓝牙应用程序框架-BlueSolei
- 多表代换 加密解密 C语言实现
- C语言版经纬度与高斯投影相互转换函
- 宾馆客房管理系统-C语言
- C++编写ATM机模拟程序
- 数据结构算法与应用--C++语言描述 书
评论
共有 条评论