学习C#从俄罗斯方块开始(三)俄罗斯方块的优化和美化

     前两节地址:

      概述

      DEMO制作

     按照我们第一节课程《学习C#从俄罗斯方块开始(一)概述》 的规划。我们在完成了俄罗斯方块Demo后,我们将要对Demo进行优化和美化设置,使得俄罗斯的可玩性增强。本节课程我们就从算法的优化、游戏的美化和可玩性的扩展性上进行改进,让我们的游戏变得强大起来,也让我们的开发技术上一个小小的台阶。

第一、算法的优化:

 

Demo中,我们基本上都是用循环来完成向下、向左、向右的移动、检查是否存在可以得分的行等动作。在这些循环中我们使用了从0到最大值的循环。本算法的优化,我们主要着重于缩小循环的范围开始。经过我们的观察发现。在检测是否满行和绘制背景的时候,我们采用了历边所有的背景数组。我们可以缩小到只在俄罗斯方块完成落下的最小高度上进行检测,这样就大大的缩小了我们的循环范围。

所以我们申明了一个参数:lowY.

 原来我们的检测是否得分的函数:

 

就可以优化为:

原来的绘图函数

 

则可以优化为:

 

关于游戏的美化:

我们着重美化了游戏的砖块,把蓝色的惨不忍睹的砖块,变成多个颜色,仿三维样式的方块。效果图如下

 

在这里因为需要变成不同的颜色,所以背景必须有以前的x,y轴的两维信息,变成一个x,y的数字 和 color的三维信息。所以背景数组变化为:

同时我们定义了一个TricksColor的颜色数组,每个砖块对照三个颜色信息,分别表示显示出来的三个面的颜色:(具体的颜色各位可以再自己的游戏中随便变换,以达到美观为目的.)

因为背景数组发生了变化,所以我们的当前砖块也相应的变成了三维数组,代码都随之改动。现在我们主要贴出来draw的变化,关于其他代码的变化。大家可以去源文件中查看详细的注释:

 

关于绘图的代码其实也很容易理解,我们首先通过在原来图片的基础上在斜上方和斜右进行绘制,使得大家看起来像三维的砖块了。另外在绘制砖块的时候,采用了对背景判断,已经砖块衍生出来的色块会覆盖背景。

可玩性的优化:

 首先,我们针对我们的游戏进行了关卡设置。我们使得游戏每增加1000分。游戏进入一关。没进入一关,速度都变快.用技术的语言讲:每进入一关,把timer的时间间隔缩小一部分即可。

private int Step = 1; //我们首先来申明个关卡的变量。

CheckSorce的函数相应的改变为:

其次,我们可以增加砖块的种类来优化游戏性:在这里只需要增加砖块数组和颜色数组的元素即可。

具体的可以看源码:俄罗斯方块.rar

此外如果你对这个游戏有任何问题,或者有任何建议,欢迎去csdn论坛一起讨论:

http://topic.csdn.net/u/20100218/15/d5c8a93f-5690-4efb-841e-5a290e7c183e.html

 

 

如果你在看这篇文章的话。你可以继续看看这个

http://blog.csdn.net/aofengdaxia/archive/2010/10/15/5944193.aspx

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 35
    评论
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aofengdaxia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值