飞机大战——C语言(附源码)

概要

声明:本文大部分内容参考up主进行编写(C语言飞机大战)

并对他没有讲解到的进行延续,以及本人编写时遇到的诸多问题。

整体架构流程

1.准备飞机大战所需素材,并预装esayx第三方图形库。

2.游戏窗口创建及游戏角色的的创建

3.游戏角色的移动

4.对游戏角色进行移动边界限制

5.玩家飞机子弹的的发射与移动

6.大量敌机的绘制与移动

7.定时器的设置

8.背景音乐及得分面板的输出

技术名词解释

所需函数

  •  initgraph(宽 , 高 , SHOWCONSOLE) //绘制游戏窗口
  • loadimage(&图片 , _T("图片路径"))   //加载图片
  • putimage(x坐标 , y坐标, &img_palyer[0] , NOTSRCERASE) //对窗口进行贴图
  • putimage(x坐标 , y坐标, &img_palyer[1] , SRCINVERT) //并进行掩码处理
  • mciSendString(LPCSTR("open 路径 alias BGM"), 0, 0, 0); //音乐调用
  • outtextxy(宽 * 0.5, 高 * 0.9, _T("得分:")) //得分板绘制
  • 使用ps进行掩码图绘制

技术细节

编程过程中遇到的一些棘手问题:

  • 基础准备:字符集要使用多字节字符集;SDL检查改为否;链接器输入依赖库导入winmm.lib静态库。
  • 头文件准备 #include<Windows>  //调用windows 的API
                       #include<mmsystem.h> //多媒体接口
                      #pragma comment(lib,"winmm.lib") //导入静态库
  • 音乐文件可能直接改后缀没有用,本人就是到QQ音乐转格式才通过编译
  • mciSendString调用时,我使用repeat编译通过,但无法发出声音,看了许多大佬解释,都没有用,后面我朋友看了微软手册给我说可能重复了,mciSendString执行了两次,意思就是音乐一直从0h0m0s开始循环,然后让我加个全局变量控制,果然好了:                                         代码如://控制音乐的全局变量                 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林七北

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值