• 大小: 2.74MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-02-02
  • 语言: C/C++
  • 标签: c语言  c++  游戏  

资源简介

大一下小学期看了知乎上童晶老师的书《“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个文件信息

评论

共有 条评论