#include

#include

#include

//引用Windows Multimendia APT

#pragma comment(lib,"Winmm.lib")

#define Width 400

#define High 500

IMAGE img_bk; //背景图片

float position_x, position_y; //飞机的位置

float bullet_x, bullet_y; //子弹的位置

float enemy_x, enemy_y; //敌机的位置

IMAGE img_planeNormal1, img_planeNormal2; //飞机图片

IMAGE img_planeExplode1, img_planeExplode2; //爆炸飞机图片

IMAGE img_bullet1, img_bullet2; //子弹的图片

IMAGE img_enemyplane1, img_enemyplane2; //敌机的图片

int isExpolde = 0;//飞机是否爆炸

int score = 0; //得分

void startup()

{

mciSendString("open ", NULL, 0, NULL); //打开背景音乐

mciSendString("play bkmusic repeat", NULL, 0, NULL); //循环播放

initgraph(Width, High);

loadimage(&img_bk, "D:\\c语言\\游戏图片素材\\background.jpg");

loadimage(&img_planeNormal1, "D:\\c语言\\游戏图片素材\\planeNormal2.jpg");

loadimage(&img_planeNormal2, "D:\\c语言\\游戏图片素材\\planeNormal1.jpg");

loadimage(&img_bullet1, "D:\\c语言\\游戏图片素材\\bullet2.jpg");

loadimage(&img_bullet2, "D:\\c语言\\游戏图片素材\\bullet1.jpg");

loadimage(&img_enemyplane1, "D:\\c语言\\游戏图片素材\\enemyplane2.jpg");

loadimage(&img_enemyplane2, "D:\\c语言\\游戏图片素材\\enemyplane1.jpg");

position_x = Width * 0.5;

position_y = High * 0.7;

bullet_x = position_x;

bullet_y = -85;

enemy_x = Width * 0.5;

enemy_y = 10;

BeginBatchDraw();

}

void show()

{

putimage(0, 0, &img_bk); //显示背景

if (isExpolde == 0)

{

putimage(position_x - 50, position_y - 60, &img_planeNormal1, NOTSRCERASE); //显示飞机

putimage(position_x - 50, position_y - 60, &img_planeNormal2, SRCINVERT);

putimage(bullet_x - 7, bullet_y, &img_bullet1, NOTSRCERASE); //显示子弹

putimage(bullet_x - 7, bullet_y, &img_bullet2, SRCINVERT);

putimage(enemy_x, enemy_y, &img_enemyplane1, NOTSRCERASE); //显示敌机

putimage(enemy_x, enemy_y, &img_enemyplane2, SRCINVERT);

}

else

{

putimage(position_x - 50, position_y - 60, &img_planeExplode1, NOTSRCERASE); //显示爆炸飞机

putimage(position_x - 50, position_y - 60, &img_planeExplode2, SRCINVERT);

}

outtextxy(Width * 0.48, High * 0.95, "得分: ");

char s[5];

printf(s, "%d", score);

outtextxy(Width * 0.55, High * 0.95, s);

FlushBatchDraw();

Sleep(2);

}

void updateWithoutIput()

{

if (isExpolde == 0)

{

if (bullet_y > -25)

bullet_y = bullet_y - 3;

if (enemy_y < High - 25)

enemy_y = enemy_y + 0.5;

else

enemy_y = 10;

}

if (fabs(bullet_x - enemy_x) + fabs(bullet_y - enemy_y) < 80) //子弹击中敌机

{

enemy_x = rand() % Width;

enemy_y = -40;

bullet_y = -85;

mciSendString("close gemusic", NULL, 0, NULL); //先把前面一次音乐关闭

mciSendString("open ", NULL, 0, NULL); //打开音乐

mciSendString("play gemusic", NULL, 0, NULL); //仅播放一次

score++;

if (score > 0 && score % 5 == 0 && score % 2 != 0)

{

mciSendString("close 5music", NULL, 0, NULL); //先把前面一次音乐关闭

mciSendString("open ", NULL, 0, NULL); //打开音乐

mciSendString("play 5music", NULL, 0, NULL); //仅播放一次

}

if (score % 10 == 0)

{

mciSendString("close 10music", NULL, 0, NULL); //先把前面一次音乐关闭

mciSendString("open ", NULL, 0, NULL); //打开音乐

mciSendString("play 10music", NULL, 0, NULL); //仅播放一次

}

}

if (fabs(position_x - enemy_x) + fabs(position_y - enemy_y) < 150) //敌机撞中我机

{

isExpolde = 1;

mciSendString("close exmusic", NULL, 0, NULL); //先把前面一次音乐关闭

mciSendString("open ", NULL, 0, NULL); //打开音乐

mciSendString("play exmusic", NULL, 0, NULL); //仅播放一次

}

}

void updateWithInput()

{

if (isExpolde == 0)

{

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)

{//按下鼠标左键发射子弹

bullet_x = position_x;

bullet_y = position_y - 85;

mciSendString("close fgmusic", NULL, 0, NULL); //先把前面一次音乐关闭

mciSendString("open ", NULL, 0, NULL); //打开音乐

mciSendString("play fgmusic", NULL, 0, NULL);

}

}

}

}

void gameover()

{

EndBatchDraw();

_getch();

closegraph();

}

int main()

{

startup();

while (1)

{

show();

updateWithoutIput();

updateWithInput();

}

gameover();

return 0;

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

用c语言将学生系统插入音效,增加音效.cpp相关推荐

  1. 基于php语言的 选课系统,基于C语言实现学生选课系统

    鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一个简单的学生选课系统. 思路比较简单: 1.回滚显示各种提示信息或操作信息 2.链表操作. 代码中有管理员部分功能没有实现,学生和老师的功能基 ...

  2. 基于C语言的学生选课系统

    鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一个简单的学生选课系统. 思路比较简单: 1.回滚显示各种提示信息或操作信息 2.链表操作. 代码中有管理员部分功能没有实现,学生和老师的功能基 ...

  3. c语言添加删除课程的思路,基于C语言实现学生选课系统

    基于C语言实现学生选课系统 发布时间:2020-09-03 11:41:13 来源:脚本之家 阅读:100 作者:xiaocaidayong 鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一 ...

  4. 学生兴趣爱好管理系统 c语言,《学生兴趣爱好系统.doc

    <学生兴趣爱好系统 学 年 设 计 报 告 设计题目 学生爱好兴趣统计系统 作者姓名 李宁 孙斌 何小强 傅恩启 所学专业 网络工程 指导教师 杨斌 2012年 08 月 31 日 学年设计任务 ...

  5. c语言程序学生成绩系统论文,c语言程序设计-学生成绩管理系统论文.doc

    c语言程序设计-学生成绩管理系统论文 C语言程序设计课程设计报告 - PAGE 11 - 中南民族大学工商学院 电子信息与计算机技术系 项目名称: 学生成绩管理系统 学生姓名: 学 号: 班 级: 指 ...

  6. c语言学生选课系统word,Linux环境下C语言《学生选课管理系统》全源代码,含流程图...

    linux c语言 一个学生管理系统的源代码,并有解释 //第一部分:结构体.流程图.总结 Page1 //第二部分C语言源代码 Page10 //第一部分 一.简介: 本系统称为"学生选课 ...

  7. c语言代码学生学籍系统,C语言实现学生学籍管理系统.pdf

    C语言实现学生学籍管理系统 这篇文章主要为大家详细介绍了C语言实现学生学籍管理系统,具有一定的 考价值,感兴趣的小伙伴们可以 考 一下 本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家 ...

  8. 学生成绩等级用c语言,C语言实现学生成绩等级划分的方法实例

    C语言实现学生成绩等级划分的方法实例 题目·:用if-else嵌套语句实现学生成绩等级查询 要求:分为ABCD4个等级,100-90为A:90-70为B:70-60为C:60以下为D 思路: 1.先从 ...

  9. C/C++语言实现 学生管理系统

    C/C++语言实现 学生管理系统 首先,让我分部分介绍本学生管理系统 本系统分为两个大板块,分别是学生版和教师版,学生版又分出三个具体功能,教师版分为七个功能,让我依次来介绍它们吧! (一)学生版 1 ...

  10. 成绩处理工具C语言论文,学生成绩管理系统C语言程序论文

    C语言,大型工作语言,大型工作1项目目录1.目标...........22.主题描述和要求........23.报告内容...........3 3.1需求寻求和分析概要设计........3 3.2 ...

最新文章

  1. 可构造样式表 - 通过javascript来生成css的新方式
  2. Linux 发行版与Linux内核
  3. flex 下对齐_CSS3中Flex弹性布局该如何灵活运用?
  4. echarts饼状图mysql_echarts饼状图位置设置
  5. Spring核心知识
  6. 如何选择RabbitMQ和Kafka
  7. devc运行不出窗口_足不出户“云出庭”?沾化“智慧检务”让法律监督“不打烊...
  8. Python使用for循环打印直角三角形
  9. MyQL 解压版本安装与默认密码查找(Mysql版本mysql-5.7.26)
  10. 计量经济学及Stata应用 陈强 第八章自相关习题8.3
  11. 常见的相机输出接口CVBS、VGA、DVI、HDMI、SDI、Camera Link、HS-LINK、CoaXPress
  12. PostgreSQL 生成随机数字、字符串、日期、验证码以及 UUID
  13. python 100days github_GitHub - 382982408/Python-100-Days: Python - 100天从新手到大师
  14. npm install报gyp info it worked if it ends with ok
  15. android隐藏虚拟按键的几种方式
  16. 时尚html输入框,12款经典时尚的HTML5应用
  17. AirPods声音越来越小问题
  18. Springboot+阿里云kafka踩坑实录
  19. Syscall的实现
  20. DCT 变换(几个简单的MATLAB的例子)

热门文章

  1. python七大神级插件_Maya神级插件 SOuP 和OpenVDB
  2. JavaWeb实体类转为json对象
  3. 计算机电源线税务编码,电力电子元器件税收分类编码
  4. 最新合成类游戏APP源码,带安装教程
  5. 纯JavaScript实现鼠标拖尾效果
  6. GitHub官网入门教程翻译
  7. URLDecoder
  8. JavaSE IDEA 使用-面向对象
  9. 《惢客创业日记》2020.03.16-31(周一) 国家有难,匹夫有责(三)
  10. java jpa面试题_jpa面试题解析,java面试题