熊掌

突发奇想想写个俄罗斯方块

继续研习AS3.0,看到新学的几个方法,脑子里突然蹦出写一个俄罗斯方块的主意,于是赶紧动手。


第一版不堪入目,不过已经实现基本功能,随时间流逝方块不断向下移动,同时键盘方向键也可以操纵方块,如果落地方块就不能动了,顶部随机产生新的方块。不过最大的问题是方块不能叠放在一起……


后来继续上网查找资料苦苦寻觅实现叠放方块的方法,发现一个不错的招hitTestObject(),可以检测到对象之间是否接触,参考网上的源码对自己的俄罗斯方块进行改造,总算实现了方块叠放,不过新的问题又来了


通过随机颜色(当然是在指定范围内的),方块的色彩果然好看了不少,不过因为AS3.0自带的hitTestObject()方法的机制问题,角碰角或者侧面碰触都算是接触,所以会出现不少方块悬空停靠的问题(不过觉得这样随机产生的图案倒是别具一种美感~~),没办法,只好自己寻找解决的良方。

最后我用的方法是利用getObjectsUnderPoint(),简单来说就是在一个方块移动的时候在它三面(左右下)放置一个点,如果下面的点检测到有其它方块存在,那么就停止当前方块的移动,如果左边的点检测到左边有其他方块存在,就暂时让左方向键失灵,右侧同理,这样就可以高度模拟俄罗斯方块的基本物理特性了。


当然我也添加了gameover的机制,否则这个游戏会陷入冗循环的 =_=表示因为这个软件崩盘过一次……


截止我写这篇稿子的时候,这个俄罗斯方块就完成到这里了。我知道这个离真正的俄罗斯方块还有十分遥远的距离╮(╯_╰)╭,比如添加各种形状的方块,可以旋转,一行铺满自动消除等等,想想都觉得有点小激动呢……希望这个游戏不会烂尾。

评论

热度(1)