教您用flash制作俄罗斯方块游戏
更新时间:2012/10/23 点击:1699次
俄罗斯方块是一款经典的小游戏,本例利用ActionScript将其在Flash制作中实现出来。游戏****有7种形状的方块,它们出现并下落的顺序是随机的,与传统的俄罗斯方块一样,这里也有下一个要下落的方块的提示。当前方块停止下落时,判断得分,继续出现下一个方块。此外,还可以通过单击按钮调节方块下落速度。制作方块游戏要求的方面比较多,下面对重要的部分予以介绍。
1. 随机产生方块
要随机产生方块自然要用到随机数,这里在每种形状方块的影片剪辑的链接标识符中加入代表方块形状的序号,根据产生的随机数决定产生哪种形状的方块。由于既要产生当前方块,又要产生下一个要下落的方块,因此需要使用两个变量来存放随机数。
2. 对方块进行控制
方块在下落过程中可以进行左移、右移、加速下落和旋转,这些都可以通过键盘进行控制。由于方块在EnterFrame事件中下落,会造成速度快得无法接受的结果,因此在EnterFrame事件中使用一个变量进行计数,当计数变量达到某一值时才令方块下落。这样出使得可以通过调整计数变量的最大值来控制方块的下落速度。
3. 方块停止检测
当方块下落(或左移、右移)到边界或其他方块位置,不能再移动时,方块停止运动。这就需要对方块应该在何处停止进行判断。由于在一行填满时需要清除该行方块,因此在方块停止下落时应该使用独立的方块单元代替当前方块。为了更便于对一行是否填满进行检测,定义了一个二维数组,数组的每个元素代表游戏界面中一个特定的位置,因此只需要判断对应于某位置的数组元素的值就可以知道该位置是否有方块存在。无论是在方块停止检测还是在是否得分的计算上,这个数组都发挥了巨大的作用。
4. 得分计算
和传统的俄罗斯方块一样,如果一次清除的行数越多,得分就应该越高。这个比较容易,只需在已经得分的情况下再进行一次得分判断,以此类推,每次得分判断成功都可以得到更高的分数。在得分的情况下需要做两件事情,一是清除得分行的方块,二是将该行以上的方块都向下移动一行的距离。当然,在清除和移动方块位置的同时需要相应地改变数组元素的值。
1. 随机产生方块
要随机产生方块自然要用到随机数,这里在每种形状方块的影片剪辑的链接标识符中加入代表方块形状的序号,根据产生的随机数决定产生哪种形状的方块。由于既要产生当前方块,又要产生下一个要下落的方块,因此需要使用两个变量来存放随机数。
2. 对方块进行控制
方块在下落过程中可以进行左移、右移、加速下落和旋转,这些都可以通过键盘进行控制。由于方块在EnterFrame事件中下落,会造成速度快得无法接受的结果,因此在EnterFrame事件中使用一个变量进行计数,当计数变量达到某一值时才令方块下落。这样出使得可以通过调整计数变量的最大值来控制方块的下落速度。
3. 方块停止检测
当方块下落(或左移、右移)到边界或其他方块位置,不能再移动时,方块停止运动。这就需要对方块应该在何处停止进行判断。由于在一行填满时需要清除该行方块,因此在方块停止下落时应该使用独立的方块单元代替当前方块。为了更便于对一行是否填满进行检测,定义了一个二维数组,数组的每个元素代表游戏界面中一个特定的位置,因此只需要判断对应于某位置的数组元素的值就可以知道该位置是否有方块存在。无论是在方块停止检测还是在是否得分的计算上,这个数组都发挥了巨大的作用。
4. 得分计算
和传统的俄罗斯方块一样,如果一次清除的行数越多,得分就应该越高。这个比较容易,只需在已经得分的情况下再进行一次得分判断,以此类推,每次得分判断成功都可以得到更高的分数。在得分的情况下需要做两件事情,一是清除得分行的方块,二是将该行以上的方块都向下移动一行的距离。当然,在清除和移动方块位置的同时需要相应地改变数组元素的值。