网络编程
位置:首页>> 网络编程>> JavaScript>> JavaScript版俄罗斯方块Easy Tetris实现原理(3)

JavaScript版俄罗斯方块Easy Tetris实现原理(3)

 来源:DHTML精英,WEB前端专家 发布时间:2009-07-16 10:25:00 

标签:俄罗斯方块,JavaScript,游戏,原理

变形部分相对简单,如,Z的变形为:

[
[0,0,1,0]
[0,1,1,0]
[0,1,0,0]
[0,0,0,0]
]

只要将此形状同时保存到方块数组中即可,由于所有方块中,最多变形次数为4次,所以,所有方块都4个一组的来表示,每一个维度表示每一次形变后的形状,在变形方法中只要通过这个索引值来进行递增即可获得下一次形变的样子,然后重新渲染出来即可。

投影部分

需要一个和方块部分一一对应的数组,记录每个方块的投影区域,还是以Z为例,它可以表示为:

[1,1,1,0,1,1,0,0]

前4位 1,1,1,0 表示,在一个4列的格子中,Z,前面3个格子是要进行投影的

后4位 1,1,0,0 表示,投影跟随下落方块的时候,Y坐标在下落方块下面第1个位置(1的个数-1)

投影部分除了需要一个对应的数据外,还需要一个DOM元素进行表示,很简单,就是一个1*4的表格,它需要在下落方块移动、变形的时候做相应的处理。

边界检测

边界检测应该是俄罗斯方块中最重要的算法部分了。在Easy Tetris中采用的是“位与”判断的方法进行处理,即,将下落的方块4*4个区域与即将落在的游戏区域中相应的4*4个区域进行“位与”比较,如果返回0,则说明可以移动,否则,不能移动。

下落的方块每调用一次“移动”的方法之前,都要进行边界检测;

下落的方块每调用一次“变形“的方法之前,也要进行边界检测;

所以,如果你能够足够的优化移动、变形、边界检测这三部分的算法,那么你的俄罗斯方块将会给玩家一个非常高的控制灵敏度,从而大大提高可玩性!

好了,在WEB中用JavaScript编写俄罗斯方块的大体原理就是这样了,下面,我们一起来玩玩这个写好的俄罗斯方块游戏Easy Tetris吧:http://www.v-ec.com/games/tetris/

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com