自己写的俄罗斯方块

语言:C++

本程序实现了俄罗斯方块的基本功能,可以设置等级,修改背景图片,并在游戏时根据不同的情况播放不同的音乐。

 

用户可以点击开始,开始游戏,暂停暂停游戏,点击停止结束游戏,在游戏中可以更改游戏等级。

 

 

游戏结束时可重新开始。

 

 

点击设置可以设置背景图片,背景音乐暂时没有添加。

 

 

程序的设计尽可能采用OOP,设计了一下几个类:

以上的几个类中CRussiaDialog为主面板类,处理最基本的绘图功能。

CGame为俄罗斯方块游戏类,处理俄罗斯方块的游戏逻辑。

CGamePanel为俄罗斯方块游戏面板和预览面板类,调用CRussiaDialog类中基本的绘制函数完成绘制。因为整个的绘制都是在CRussiaDialog上进行的。

CBlock为俄罗斯方块的方块类。

CBox为方块的最基本单元。

 

 

经验总结:

1. 对话框程序,因为对话框上存在控件,所以不能直接响应WM_KEYDOWN。必须重载PreTranslateMessage,在判断pMsg->message==WM_KEYDOWN,调用响应函数。

2. 响应WM_CTLCOLOR消息,可以自己设置绘制控件。

if   (nCtlColor   ==   CTLCOLOR_STATIC)  
 {  
  return   (HBRUSH)::GetStockObject(HOLLOW_BRUSH);  
 }

可以将Static text的背景设置为空

3. 响应WM_ERASEBKGND消息,可以自己绘制背景,并且在绘制时使用OnEraseBkgnd(CDC* pDC)中的pDC可以实现局部重绘,否则不行。

 

具体的源码已经上传:

 http://download.csdn.net/source/2028048

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值