MFC实现像素鸟功能和一些改进

暑期实训要求用MFC来实现像素鸟功能和一些特别的功能(比如生命值加血道具之类的),经过5天的不懈努力终于完成了,写在这里留作纪念,供大家参考与学习。缺点就是代码没有封装,看起来代码很凌乱,要进行修改和改进的话特别麻烦,在后续我也会尝试的去封装后再上传。我现在写一些有用的东西,在最后附上文件。
我的代码在思路上借鉴了CSDN上这位博主的代码
链接:mfc编写的像素鸟flappy bird 小游戏-FP_Beta
一、 主要的思路就是:
1.设置定时器去刷新Onpaint()函数,在OnPaint()里进行图片的绘制以及碰撞检测以及很多功能;
2.设置变量当开关,结合if语句来控制声音和图片刷新的时间。

二、 然后就是我在CSDN找到的一些有用的函数和方法,整理分享给大家:

音乐播放:用PlaySound函数会出现不可以同时播放的问题并且也不支持MP3文件,我的同学找到了一个很不错的办法来解决了整个问题。
首先是在Dlg.h文件里添加代码:

 #include<windows.h>
#include<mmsystem.h>
#pragma comment(lib,"WINMM.LIB")
//上面的这三个我用的时候因为用了PalySound()的关系我全加了,但是我有个同学只加了下面的两行就一直报错,具体怎么回事儿我也不清楚。
#include <vfw.h>
#pragma comment(lib,"vfw32.lib")//播放MP3,

然后在想要插入音乐的地方加入代码:

HWND hwnd = MCIWndCreate(m_hWnd, NULL, WS_POPUP | MCIWNDF_NOPLAYBAR | MCIWNDF_NOMENU, _T("文件路径"));::ShowWindow(hwnd, SW_HIDE);MCIWndSetVolume(hwnd, 1000); //设置音量MCIWndPlay(hwnd);  //播放(异步)``

关闭音乐的代码片段:

   mciSendCommand(MCI_ALL_DEVICE_ID, MCI_CLOSE, 0, 0);

按钮皮肤的更改:
(1)先添加一个按钮
(2)把按钮属性中的Owner Draw改为True

(3)为按钮添加一个CBitmapButton的变量我添加的变量名字是m_button1(最好在类向导中添加)
(4)在资源视图中右键添加资源然后选中Bitmap点击导入
导入后记住图片对应的ID。
选记得选所有文件

(5)在OnIitDlg()里添加:

// TODO: 在此添加额外的初始化代码//按钮换肤m_button1.LoadBitmaps(IDB_BITMAP4, IDB_BITMAP4);

第一个参数是不点击显示的画面,第二个是点击是显示的画面。

这就是我要分享有用的函数。

三、下面的是我的项目演示:

很多变量sc开头是我的ID缩写,注释写的不是很多见谅。源代码由于资源路径和资源上传等问题,我就全部放在了文件中。不需要积分,仅供大家学习下载使用,谢绝转载。
链接:MFC像素鸟代码文件

MFC实现像素鸟功能和一些改进相关推荐

  1. c语言像素鸟游戏,mfc编写的像素鸟flappy bird 小游戏

    压缩包内容概览: mfc编写的像素鸟flappy bird 小游戏-FP_Beta1 ; 调试 ; FPβ1 ; 关于我们 ; 背景 ; FPβ1.VCXPROJ ; FPβ1动态心电图 ; 管子 ; ...

  2. 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目

    课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...

  3. python像素鸟游戏

    目录 1.引言 2.系统结构 2.1 总体结构 2.2 局部结构 2.2.1 main模块结构 2.2.2 Bird模块结构 2.2.3 Tubing模块结构 3.代码实现 4.实验 5.总结和展望 ...

  4. html5实现像素鸟,有趣的Axure案例:像素鸟游戏的设计

    原标题:有趣的Axure案例:像素鸟游戏的设计 这是作者第三次发布有关axure游戏的内容了,相比较前两次而言,此次的设计更加完善,难度相应的也要高很多.游戏基本上已经趋于完整,加入了game ove ...

  5. 用原生js+html写一个像素鸟游戏

    前言: 用html+js+css写一个面向对象板的像素鸟游戏 看一下效果把: 游戏需引用的图片:(右键保存图片) bird.png land.png pipeDown.png pipeUp.png s ...

  6. 像素鸟 app 的设计与实现

    1. 设计目的与意义 1.1设计目的 在飞速发展的互联网时代,快捷生活的学生可以在碎片化的时间里使用像素鸟进行娱乐放松. 1.2设计意义 随着网络游戏的飞速发展,类似于"王者荣耀" ...

  7. 【教程+源码】Java开发经典游戏飞翔的小鸟_Java游戏项目Flappy Bird像素鸟游戏

    在飞翔的小鸟游戏中,玩家只需通过点击方向键操纵让小鸟避开绿色管道等障碍物即可继续前进.如果小鸟碰到管道,游戏立即结束. 那么如何用Java编写一款属于自己的飞翔的小鸟游戏呢?其过程并不复杂,本课程详细 ...

  8. 原生JS:100行js代码带你实现【像素鸟】小游戏(完整代码+素材图片)

    系列文章目录 JS:经典小游戏:像素鸟 JS:经典小游戏:贪吃蛇 JS:经典小游戏:扫雷 目录 系列文章目录 像素鸟 1.游戏介绍 2.代码分析 3.代码实现 3.1 随机生成水管 3.2 当水管超过 ...

  9. 【源码+图片素材】Java开发经典游戏飞翔的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java小游戏_Java初级项目_Java课程设计项目

    开发环境: jdk1.8 开发工具: IDEA JavaEE基础: 变量.数据类型.判断语句.循环结构.数组.集合.简单窗口创建.图形图片绘制.双缓存技术.事件-键盘事件.物体的碰撞检测.File [ ...

最新文章

  1. console 非常实用的方法
  2. LeadTools Android 入门教学——运行第一个Android Demo
  3. 需求与范围驾驭深刻反省总结
  4. 双向链表的(CRUD)
  5. jOOQ类型安全数据库查询教程
  6. Python用subprocess的Popen来调用系统命令
  7. 深入理解synchronized关键字
  8. Egg Node.js 从小工坊走向企业级开发 #20
  9. LightOJ 1197 Help Hanzo 素数筛
  10. 小米折叠屏手机真机现身:疑似跳票两年的MIX 4……
  11. 瑞士加密银行SEBA将发行B轮融资股票作为证券代币
  12. (Deep learning)深度卷积网络实战——第三部分
  13. [分享] Flask 网络开发经典书籍: Flask Web Development
  14. CSS3盒子模型(CSS3)
  15. 移动服务器位置,移动协同服务器地址是怎么设置
  16. python爬取搜狐最新时政新闻数据
  17. DJ8-2 主存储器的组织
  18. openfoam一些报错的原因(持续更新)
  19. 宋登高 php,HDwiki百科建站讲座第一期
  20. 关于HTML在线编辑文本的编码与解码

热门文章

  1. 用Python串口实时显示数据并绘图pyqtgraph(详细教程)
  2. java企业级快速开发平台jeeadminlte(jeesite大胖老师修改版)
  3. MySQL-18全文本搜索-必知必会
  4. 如何把文档表格转化成二维码,手机扫码就能看?
  5. Python生成汉字字符以及对应分辨率的图片
  6. Autodesk Maya 2018.6 中文特别版 Mac 顶级三维动画制作工具
  7. 第一次独立使用大型无人船记录日志—第2天
  8. Wcp知识管理系统部署文档
  9. 1000瓶毒水的问题
  10. python学习测试题1及参考答案