开篇:润墨网以专业的文秘视角,为您筛选了一篇VC++游戏开发俄罗斯方块范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:本文用面向对象的思想阐述了俄罗斯方块游戏实现的机制,并通过vc++6.0实现了这个游戏。
关键词:VC++6.0;面向对象的程序设计;俄罗斯方块
中图分类号:TP311.52 文献标识码:A文章编号:1009-3044(2007)04-11012-02
1 引言
本文主要讲解如何使用VC++6.0和面向对象的思想来实现俄罗斯方块的游戏。
游戏的主要思路是:
2 首先定义一个方块类
游戏分为主游戏区及游戏提示区如图:
3 控制时间间隔(用于游戏中控制形状的下落):
由于方块是由主游戏区的横纵坐标来描述的如图形
此时该图形位于主游戏区最上方的图形,使该图形移动就可以通过在时间周期内控制net数组中4个元素的横坐标就可以了,并且将坐标改变后的方块图形重绘。
4 游戏中的各种图形的表示
在俄罗斯方块中一共有7种最基本的图形,这七种图形的表示形式分别使用他们在主游戏区的二位数组中的方块位置的不同来表示。
5 图形的旋转
以上七种基本的图形的旋转方式各有不同,但是我们也可以找到其中的规律。图形1,图形3,图形5各自都有4种不同的旋转方式,图形2,图形4,图形7各自都有2种不同的旋转方式,图形6没有旋转方式。这些旋转的图形也是用以上的二维数组来表示。
这时可以定义一个变量RollCount,如果是图形1,图形3,图形5就用随机数rand() 与4取余,根据余数的数值来判定当前图形的形状,并且将RollCount++,使现在的图形变成旋转后的图形的数值,产生依次旋转的效果。同理图形2,图形4,图形7就用随机数rand()与2取余。
6 按向下方向键时加速图形下落速度
响应按下键时的消息时:
7 消去主游戏区底部填满的行(最多可以消去四行)
查看主游戏区底部的每行是否填满的方式是:遍历主游戏区的二维数组,判断每行的所有方格的flag表示是否都为1, 都为1时,表示图形都填满了,这时可以消除填满的行了。
8 结语
游戏提示区的实现方式与主游戏区类似。该软件只包含了俄罗斯方块游戏的基本功能,但该程序采用了面向对象的设计方式,易于扩充。
参考文献:
[1]Charles Petzold.Windows程序设计[M].北京大学出版社.2004(9).
[2]侯俊杰(侯捷).深入浅出MFC[M]. 华中科技大学出版社. 2001(1).
[3]陈宏伟,袁国斌.如何用VC++6.0实现俄罗斯方块游戏[D].现代计算机.131:88-91.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。