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像素鸟代码文件