写个俄罗斯方块需要什么样的知识?

在QQ群里几个群友,跟我一样是初学c++不久,想做一个小游戏来巩固c++的基础知识,但不知道如何下手。今年是俄罗斯方块诞生25周年,前一阵子我尝试做一个俄罗斯方块的小游戏,经过努力,真做出来了,在这里我谈谈自己的看法,本人也没什么编程经验肯定有疏漏之处欢迎指正。

1.搭建编程环境。我是用codeblocks+wxWidgets环境,南郁老师的《白话C++ 2008版》第二章有手把手详细描述,对于只写俄罗斯方块,我觉得只看2.1,2.2, 2.4, 2.14这四节就可以了。如果是想用MFC来写的话,估计安装完微软的visual studio就可以用了不需要做什么配置。

2.需要用到的c++语法知识:变量的定义与使用,表达式和语句(特别是for while switch),数组和指针(会操作三维数组),理解头文件和源文件的作用,全局变量的声明和定义,类的最基本知识(构造函数,调用类的成员函数)。对于这些基础知识,我看的是南郁老师写的《白话c++2008》。

3.图形界面方面需要用到的:定时器的使用,使用绘图函数画长方形(使用画笔对象),会给图形填充颜色(使用刷子对象),如果想给界面更美观些可考虑用相应的函数导入美女图片作为背景。要知道WM_PAINT这个事件,要知道键盘按键事件。如果想实现分数功能,那么要知道如何在屏幕上显示文字(其实就是画出来的,有相应的函数),大概是这些。

建议看孙鑫老师的VC++视频教程。这个视频我大概是1年前看的,那时候我还没自学c++的语法,朋友就建议直接看孙老师的这个视频了。大家不要见笑,那时我连引用都不认识(怎么函数参数里那么多取地址的?呵呵后来才知道那是引用),看得一头雾水。

虽然我这次写的俄罗斯方块使用的是wxWidgets图形库,但是跟孙老师视频中的基本是一样的,我是靠着那点印象来查wxWidgets的文档。对于孙鑫老师的这个视频,对于写俄罗斯方块来说,我觉得只需看前五章就可以了。菜单,对话框那些,可以先放放不用看。

4.对于俄罗斯方块需要用到的所谓算法。不需要什么复杂的算法,用到复杂的算法我也不懂。基本是算术运算,条件判断大概就可以了。尽量自己想,如果实在想不出来,推荐大家参考王富涛同学的这篇文章《自己动手写俄罗斯方块(一)》(在看完孙鑫老师的视频后再看此文章):http://student.csdn.net/space.php?uid=43658&do=blog&id=8263

暂时想到这么多了,以后想到的再上来补充。或者各位同学跟老师一起在下面提建议,让大家都可以尽快做出这么一个小游戏来。

 

我实现的功能,供参考:
字母T键:当游戏GAME OVER后重新开始游戏,分数将清零
字母P键:暂停和恢复游戏
方向键上,或K键:方块逆时针旋转
J键:方块顺时针旋转
方向键左,或A键:方块左移
方向键右,或D键:方向右移
方向键下,或S键:方块下移
字母N键:方块急速下落,一按这个键方块就到达底部
同时消去两行,三行,四行会有不同的额外分数奖励。到达最高级数后,方块下落速度加快,如果玩家如果能坚持一定秒数(例如设定为15秒),则自动降一级.然后达到一定分数又自动升级,如此循环.界面上有剩余秒数的提示.

附:
南郁老师的《白话c++ 2008》下载地址:
http://www.brsbox.com/gz81
孙鑫老师的vc++视频下载地址:
http://www.sunxin.org/video/vc.htm
我做的俄罗斯方块下载(大家先试着写,暂不公布代码):
http://www.brsbox.com/gz81
我的第一个作品(编程环境:Code::Blocks + wxWidgets):
http://student.csdn.net/space.php?uid=116706&do=blog&id=9911

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值