小游戏打砖块

小游戏打砖块

ID:33047284

大小:227.50 KB

页数:5页

时间:2019-02-19

小游戏打砖块_第1页
小游戏打砖块_第2页
小游戏打砖块_第3页
小游戏打砖块_第4页
小游戏打砖块_第5页
资源描述:

《小游戏打砖块》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、小游戏打砖块制作人:步宇星20062366信息学院06计算机系开发平台:VisualC++6.0软件介绍:模拟红白机小游戏,打砖块。如果你是80年代出生或者孩子是80年代出生的话,或者你是一个心理年龄比较中,家里一定会有任天堂出品的红白机,或者小霸王。那些怀旧的经典游戏中有一款叫做打砖块的小游戏。本作品就是我在PC上仿真它做出来的。游戏开始时的截图。这是一个用DirectDraw做图形处理的全屏幕游戏。操作在屏幕下方。玩过的人都知道游戏规则,很简单,控制球棒接住球并把所有的方块打掉,就可以进入下一关。屏幕上方又显示level,level越高球速越快,另外每关背景和音乐也不一样。

2、这是第二关背景改变了下面的卡就不在给图了主要程序框架:本游戏是在win32平台下用开发的,所以跟每个win32程序一样都是以WinMain为程序入口,用WindowProc来处理消息(WM_CREATE、WM_ACTIVATE、WM_PAINT、WM_DESTROY)。1、主消息循环//游戏初始化Game_Init();//进入事件循环while(true){if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){//如果是WM_QUIT退出事件循环if(msg.message==WM_QUIT)break;//翻译消息TranslateMessage

3、(&msg);//把消息送给回调函数DispatchMessage(&msg);}//endif//进入游戏主程序在这里进行每一帧的绘制if(!Game_Main())return(0);}//endwhile//做游戏结束工作Game_Shutdown();为了保证响应windows,Game_Main()采用状态机的方式工作,每次操作完返回给windows下次再进入Game_Main()时根据所在状态工作,//游戏状态#defineGAME_STATE_INIT0#defineGAME_STATE_START_LEVEL1#defineGAME_STATE_RUN2#def

4、ineGAME_STATE_PAUSE3#defineGAME_STATE_OVER4#defineGAME_STATE_SHUTDOWN5#defineGAME_STATE_EXIT6游戏先进入GAME_STATE_INIT状态做好初始化工作进入GAME_STATE_START_LEVEL状态重置每关的初始数据进入GAME_STATE_RUN循环在这里执行游戏逻辑、输入检测,并绘制每一帧并返回windows重复第三步第三步中按下Enter键进入GAME_STATE_PAUSE状态游戏将暂停,直到按下space键回到第三步第三步中将生命用完(life值小于0)进入GAME_ST

5、ATE_OVER状态,直到按下R键回到第二步上述步骤中如按下Esc键则进入GAME_STATE_SHUTDOWN状态此时做结束工作并发送WM_DESTROY消息进入GAME_STATE_EXIT状态此时Game_Main()不做任何操作就返回2、图像处理部分考虑到游戏对速度的要求,图像处理主要利用比GDI快得多的DirectDraw完成(文字显示用了GDI)。所有Direct的相关代码都在被我封装在ddrawlib.cpp中,其中的全局变量和函数原型以及宏和定义都在ddrawlib.h申明。我这么做的目的是让自己习惯于利用引擎的API来编程。实际上ddrawlib就是一个基于D

6、irect的简单2D游戏引擎。关于该引擎的函数库说明,源代码中有详细的注释,这里不多讲了。3、声音处理部分声音处理部分并没有像图像一样用Direct去写。因为它对速度不的影响并不大。而DirectSound或者DirectMusic(或者2者的结合DirectAudio)过于复杂了。所以音效我只用了WINAPIPlaySound函数。而背景音乐用了MCI设备的API。音效:这部分没什么好说的。我只在需要有声音的时候调用了PlaySound。背景音乐:为了让用户能够改变背景音乐,我在MP3文件夹下留了一个playlist.txt文件。修改音乐方法如下1、先将音乐文件放到mp3文件

7、夹下。2、修改playlist.txt中的文件名。注:每行一首,并且行数对应在哪一关播放。例如在第三行写:she-找不到.mp3那么第3关就会循环播放这首歌。我检测了支持wma和mp3置两种格式,其他支不支持我也不知道。不过我想这已经足够了。另外最多只能50首。播放函数如下://播放音乐该函数在GAME_STATE_START_LEVEL中调用使每关开始重置音乐//在GAME_STATE_RUN中如检测到还未过关就停止了也调用此函数重放intPlay_Music(){if(list_num)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。