当你完全掌握了Windows编程框架之后,我们就可以发力开始构思写游戏了。写游戏的第一步是敲代码吗?非也,有了良好的构思之后再写代码,就会有事半功倍的效果。所以,这一节课我们要把俄罗斯方块游戏的难点弄懂。一、边构思边准备素材一开始我们要做游戏的时候,是不可能想得非常细的,只能想一个大概,然后把游戏的主要界面做出来,最后再慢慢修缮细节。如果你有非常强大的思维能力,能想得面面俱到那更好,但是大部分人的思维能力都没有这么强。所以,我们先考虑的问题,就是俄罗斯方块这个游戏的游戏过程。由于俄罗斯方块是一个非常古老的游戏,99%的人都玩过,我们只是在这里用自己的方法重新写一遍而已。俄罗斯方块游戏的过程是这样的:在一个宽度为10的方块空间中,会随机落下特定的方块,方块只要接触到底部或者是其他方块,就会自动贴合在一起;如果某一行的10个位置全部都有方块,那么这一行的方块将全部消失,消失后,上方的方块会跌落,和下面的方块贴合在一起;如果方块贴合后的高度超过了方块空间的高度,游戏将失败。(这是我们要实现的主要游戏功能)随机跌落的方块,是由4块小方块随机组合的,从数学的角度看,4个方块随机组成图形,只能组成7种图形。为了好描述,分别用字母来代表这7种图形:O形、I形、L形、J形、T形、S形、Z形。为了体现游戏的公平性,这些图形是可以旋转的,每一次旋转都是90度。(这是我们要实现的第二个游戏功能)一般来讲,游戏都是边构思边准备的,我们已经构思了游戏的方块空间和随机方块,就先把这两个内容(或者是两个素材)做出来吧。首先是方块。由于是4个小方块随机组合在一起的,总共有7种情况,而且7种情况下的方块还可以旋转,加在一起,总共有20种不同的图形。既然如此,我们是不是要先准备这20种不同的图形呢?先把20个不同的图形全部画出来不是不可以,只不过会比较麻烦,而且后期的代码编写也会更加麻烦。在前面说过,程序员是世界上“最懒”的人,否则也就写不出那么多精妙绝伦的程序了。经过仔细观察,我们可以发现,所有的图形都是由4个正方形方块组合而成的,既然如此,我们是不是可以只准备一个方块图片?至于20种不同图形的话,就交给程序来绘制不就可以了吗?所以,我们准备的第一个素材,就是一个简简单单的正方形图片。随便你用什么绘图软件来制作这个方块图片,我用的是PS,为了让方块稍微好看一些,我给图片加了一点点的立体效果。然后是绘制一个方块空间,也就是游戏的主界面。到这里你也就明白了,所谓的二维游戏,就是一堆图片组合在一起。我设计的主界面是下面这个样子的:方块空间的大小一定要按照设计的来。比如,我设计的是20行的方块空间,而每一行10个方块是固定的,所以,我的方块空间是10×20。用PS的时候,一定要按照这个比例来绘制。我设计的方块大小是20px×20px(px是像素的意思),所以我的方块空间一定是px×px的大小。我在上方还留了40的像素空间,目的是为方块掉落留空间;左右各留了的像素空间,可以放一些和游戏相关的内容,比如游戏分数什么的。如果你觉得我设计的界面丑,完全可以不用这个设计,自己重新设计一个就可以了。需要特别注意的是,方块空间的宽度一定要是10的倍数,而方块空间的高度,要依据你设计的高度来定义。我设计了20行高,你也可以设计30行高甚至40行高,只不过行数太多的话,游戏难度就太低了。俄罗斯方块游戏简单,需要的图片素材就这两个而已。二、俄罗斯方块的主要难点是什么?通过前面的学习,你应该能想明白,俄罗斯方块是如何实现的了,游戏程序先把游戏界面的图片素材绘制在Windows窗口中,然后通过计算,随机绘制一个下落方块让玩家控制下落,这个方块还可以随意旋转,只要这个方块碰到了底部或者是其它方块,就会固定住,然后程序把下一个方块放在顶部慢慢下落。把游戏界面绘制在窗口中并不是很难,难的地方在于,如何正确地把方块显示在窗口中呢?这个问题,就是俄罗斯方块的主要难点问题。我们牵扯的问题大致如下:1、如何正确地绘制4个小方块组成的基本图形?2、如何正确地旋转基本图形?3、图形到底后,如何固定在窗口中?购买专栏解锁剩余72%
转载请注明:http://www.0431gb208.com/sjszlfa/6570.html