如何用java写俄罗斯方块游戏
的有关信息介绍如下:和贪吃蛇一样,俄罗斯方块也是一个非常经典的小游戏。之前笔者写过java实现贪吃蛇,这次用差不多的方式来实现俄罗斯方块游戏。我们用swing编程制作游戏界面,定义方块类型,实现方块变换,得分,游戏结束等等功能。
设计界面。设想中的界面应该分为左边的游戏区与右边的控制区。控制区有“开始”“暂停”“停止”按钮,游戏得分信息;游戏区则划分20*10个格子,每个方块就是由不同的格子组合而成。
我们需要定义布局,组件,初始化等操作。设置左右两边的控制区组件大小,定位来实现绝对定位。
主要的功能都在游戏区组件中实现。控制区三个按钮“开始”,“暂停”,“停止”只是调用游戏组件函数。
在游戏区,定义20*10个格子。通过标记不同格子的背景颜色,组成不同的方块。方块移动时候,也是变换组成格子的背景颜色。
然后定义游戏中出现的方块以及它的变幻方块。我们预计定义9中方块,每种方块最多只能变幻为另外一种方块。然后每次我们都是随机获取9中方块中的一种,获取的方块出现在顶部中间,所以获取了方块我们就可以初始化它的定位。
开始游戏后获取第一个方块并开启一个定时器,定时器中每隔一段时间将方块下移一个位置。如果方块下移到最后或者下移到已有方块之上再不能下移了,这时候再判断是否有某一行连成一排的。如果连成一排,累加游戏得分,同时需要消除该行,将上面的方块都挪到下面来。再获取下一个方块,并判断该方块能否安放,如果不能安放,那么游戏就结束。
这是游戏的控制逻辑。
定义游戏得分,游戏结束的判断逻辑。
还有一个主要的控制就是方块的左右移动,变形。左右变化控制方块的位置就行。变形则根据不同的方块可变形状变化,其实也是改变方块的位置就行了。
尤其要注意的是,键盘事件和时间事件中都会操作当前方块。键盘事件中改变方块的形状,向左或右移动。时间事件中方块要不停的下移。所以,在两个事件中都需要请求锁、释放锁,以此做到数据同步。
经验也只能写一个大概的设计,游戏主要就是控制方块移动、变形和游戏得分后消除,游戏结束判断等逻辑。想明白这些,实现起来就是界面布局,swing编程等。还要注意并发访问的情况等。如果有任何疑问,获取源码等,欢迎大家留言。