设为首页收藏本站language 语言切换
查看: 1553|回复: 0
收起左侧

[VS.Net]:俄罗斯方块.NET开发攻备

[复制链接]
发表于 2010-2-25 10:24:42 | 显示全部楼层 |阅读模式
<p >俄罗斯方块是个老幼皆宜的小游戏,在游戏设计界就好比高深武功的入门起手式。无数人进入游戏编程的世界都是从编写俄罗斯方块游戏开始的,因为这既是一个检验RAD开发工具的好方法,也是检验一个人对开发语言、环境和基本数据结构知识熟练程度的便捷途径。<p >让我们来看看如何使用C#语言在.NET平台上生成俄罗斯方块游戏。当你完成时,会发现编程竟如此简单,而自己在不知不觉中已跨入了它的大门。<p ><center><font color="#000099"><strong>所需条件</strong></font></center><p >我们需要一些语言本身不直接提供的能力,首先,必须能够在屏幕的任何一个位置画东西,其次要能够立即得知用户按了哪一个键。如果第一个条件不能满足的话,你将很难看到一个完整的游戏进行状态图。而如果无法实现第二个条件,恐怕玩起来就必须不停地“按一个键→回车→按另一个键→再回车”,有多麻烦。<p >我们使用Visual C#就能完全满足要求。<p ><center><font color="#000099"><strong>游戏的功能定义</strong></font></center><p >知道了基本条件,就可以开始设计游戏了,编写者必须对俄罗斯方块游戏的规则进行严格的描述。可以这样定义:屏幕上有一个X列Y层的区域,计算机自动产生多种不同类型的方块,并出现在区域的最顶端;然后每过一个固定时间间隔向下落一层,玩家可以使用键盘控制方块向三个方向移动和顺逆时针旋转90度。不过前提是方块移动和旋转后的位置必须是空的。当方块落到区域底部或者另一方块之上将停止移动,然后新的方块会产生。当新方块无处放置的时候:GAME OVER。<p ><center><font color="#000099"><strong>设计游戏的逻辑</strong></font></center><p >首先是定义游戏相关的数据存储方法,分为两个主要的部分,一个是当前的方块,需要保存位置、当前的旋转状态;另一个是屏幕区域的状态,这可以用一个二维数组来表示。<p >我们还需要:<p ><b>按键分析模块:</b>分析得到按键的含义,做出响应;响应模块:“左”、“右”、“下”、“移动”和“旋转”几个模块,负责改变当前方块的状态数据;画方块模块:位置移动后,把方块画到新的位置之上;检查模块:在每次状态改变之前,对方块企图占用的区域加以检查。如果无处可放,则此次移动失败。如果方块到底了,应该固定在当前位置,这可以调用前面的画方块模块实现,同时再产生一个新的方块。这样还需要写一个产生新方块的模块。还有当每次方块到底的时候,都需要检查一下是否有新的层排满了,如果有的话应该消层。这就又需要写两个模块,检查是否排满和消层。产生新方块时也需要检查其产生的位置,如果这个位置已被占用。那怎么办?猜对了:GAME OVER!这需要调用前面的检查模块实现。<p >到了这里游戏逻辑就差不多了,但是等等,好像少了点什么。啊哈,我们忘了俄罗斯方块也是会自动下落的,可以检查系统时间,规定过一个指定的时间间隔就调用一次方块下落模块。                                 <p align="center"><font color="FF0000" >1</font>2<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-10 13:15 , Processed in 0.061724 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表