分类:
Flex
俄罗斯方块
标签:
tetris
俄罗斯方块
消行
这节讲方块消除。首先我们建立一个Ground类,用着障碍物类,Ground类里面有个12*20的数组_cells,代表游戏面板可填充的所有方块,用_topCell变量来代表当前最顶上的一个障碍物,如果_topCell为0,则表示已经到顶,则游戏结束。
方块在移动前,将判断下方是否有障碍,或者是否左右出界。如果下方有障碍物,则触发Ground类的accept方法,开始进行消行判断,至此整个游戏就可以运行了。
最终游戏源码: /upload/2014/11/23/TETRIS1.04.zip
游戏安装程序:
......
分类:
Flex
俄罗斯方块
标签:
tetris
俄罗斯方块
方块变形
方块移动
监听键盘事件
经过上一节,已经可以使方块自动下落,这节我们给他加入键盘事件,来实现控制方块变形与移动。
首先我们加上键盘事件监听,要考虑的是键盘事件监听加到哪个对象上面,GamePanel?不,如果加在GamePanel上,只有焦点在GamePanel上时才有用,我们应该加在整个应用上,只要焦点在应用上,就能控制方块,所以我们应该加在TETRIS上面。然后我们应该监听KeyboardEvent.KEY_DOWN事件还是KEY_UP事件呢?如果是KEY_UP事件,只有键盘释放时才会移动,这样的话,如果我们按住方向键不动的话,方块将不会移动,所以我们应该监听KEY_DOWN事件。
分类:
Flex
俄罗斯方块
标签:
tetris
俄罗斯方块
定时下落
这节我们主要讲如何让方块在游戏区域显示以及定时下落。首先我们知道,标准tetris一共有7种方块,每种方块最多有四种形态,有的只有一种如正方形块,有的只有两种如竖条横条,当然我们可以把他们也看做有四种形态,只是有些形态样式相同而已,这个影响不大。参考传智播客的视频方法,方块横向竖向最大宽度为4个格子,我们可以用一个4*4的方阵来表示每个方块以及他们的状态,如下面的方阵,转化为程序,我们可以用一个二维数组来表示,红色的部分值为1,白色部分值为0,画图时,我们只对1的部分画单元格,模型大概就是这样。
分类:
Flex
俄罗斯方块
标签:
tetris
俄罗斯方块
布局
游戏面板
从今天起,我将使用AIR制作一个经典的游戏–俄罗斯方块。这个游戏不仅很多玩家喜欢玩,也有很多程序员都喜欢用这个做学习项目。刚学习AIR的时候,我就想过做这个游戏,基于难易程序,我先写了五子棋跟扫雷,五子棋的话,由于电脑AI算法现在不是我所能研究的,所以只做了玩家对战,玩家对战一般也只能用于局域网对战,实用性不强,所以没放上来。之前扫雷游戏算是完整完成了,虽然写的博客有点虎头蛇尾,实在是写作水平有限,望大家谅解。这次写扫雷程序,我会尽量写详细点,写完一点我会把每节的代码都会单独上传,希望能对大家有用。申明一点,写这个游戏前我初略看了一下传智播客的关于这个游戏的视频教程,那个是基于java GUI的,虽然语言不同,但思路是共通的,我想我很多设计会参考他,大家也可以参看那个视频。