unity小游戏实践(一) 俄罗斯方块

写这个的原因是 我从网上download了一个俄罗斯的小游戏,源码是js写的  在我看来相当的混乱而且有少量bug,然后我就改成了c#的版本,在此途中认真学习到了yield在c#中的用法和俄罗斯方块的设计思路。


首先说说我设计这种游戏的话肯定不会用到yield,因为我自认为不用这样的设计也能运行得很好,就是可能代码量会多一点。

然后看看js中的 yield,作用是挂起线程,等下次运行的时候直接跳到线程之下的步骤,

我总结了一下,主要有几个区域会用到的

js:

while(true)
{
  yield;
}
在c#中写成
while(true)
{
  yield return null;
}  搞定

for(i)
{   yield;  }

for(i)
{    yield return i;} 搞定   太吐血了     因为js的各种yield搞不清;

还有的函数体第一句fun(){ yield;}的
我认为是fun(){ yield return 1;}的 //一般是下一帧后运行  如果函数体每帧都运行的吧

yield fun()这样的  看情况而定,如果不是 yield return StartCoroutine(fun( )),那么就是StartCoroutine(fun( )),(看函数体是不是IEnumerator)


然后说说这个游戏的设计思路: 首先全局有一个静态的管理类Manager,它附在空物体中,在场景运行的时候执行初始化操作

一些关键参数 bool[,] field; 场景的2维bool数组存储

blockNormalSpeed = 2.0f;   正常速度
blockDropSpeed = 30.0f;   方块掉落速度
blockMoveDelay = 0.1f; //   移动延迟

初始化,确定场景的真实边界,并确定2维数组field的边界,使用true表示block,false表示space,并在2维数组中的上下左右分别做一条边的true  表示有边界了不能移动过去

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值