首页 > 母婴教育 > 学习交流 > 如何用java写俄罗斯方块游戏?

如何用java写俄罗斯方块游戏?

   来源:秒知站    阅读: 1.75W 次
字号:

用手机扫描二维码 在手机上继续观看

手机查看

和贪吃蛇一样,俄罗斯方块也是一个非常经典的小游戏。之前笔者写过java实现贪吃蛇,这次用差不多的方式来实现俄罗斯方块游戏。我们用swing编程制作游戏界面,定义方块类型,实现方块变换,得分,游戏结束等等功能。

操作方法

(01)设计界面。设想中的界面应该分为左边的游戏区与右边的控制区。控制区有“开始”“暂停”“停止”按钮,游戏得分信息;游戏区则划分20*10个格子,每个方块就是由不同的格子组合而成。

如何用java写俄罗斯方块游戏?

(02)我们需要定义布局,组件,初始化等操作。设置左右两边的控制区组件大小,定位来实现绝对定位。

如何用java写俄罗斯方块游戏? 第2张
如何用java写俄罗斯方块游戏? 第3张

(03)主要的功能都在游戏区组件中实现。控制区三个按钮“开始”,“暂停”,“停止”只是调用游戏组件函数。

如何用java写俄罗斯方块游戏? 第4张

(04)在游戏区,定义20*10个格子。通过标记不同格子的背景颜色,组成不同的方块。方块移动时候,也是变换组成格子的背景颜色。

如何用java写俄罗斯方块游戏? 第5张

(05)然后定义游戏中出现的方块以及它的变幻方块。我们预计定义9中方块,每种方块最多只能变幻为另外一种方块。然后每次我们都是随机获取9中方块中的一种,获取的方块出现在顶部中间,所以获取了方块我们就可以初始化它的定位。

如何用java写俄罗斯方块游戏? 第6张
如何用java写俄罗斯方块游戏? 第7张
如何用java写俄罗斯方块游戏? 第8张

(06)开始游戏后获取第一个方块并开启一个定时器,定时器中每隔一段时间将方块下移一个位置。如果方块下移到最后或者下移到已有方块之上再不能下移了,这时候再判断是否有某一行连成一排的。如果连成一排,累加游戏得分,同时需要消除该行,将上面的方块都挪到下面来。再获取下一个方块,并判断该方块能否安放,如果不能安放,那么游戏就结束。这是游戏的控制逻辑。

如何用java写俄罗斯方块游戏? 第9张

(07)定义游戏得分,游戏结束的判断逻辑。

如何用java写俄罗斯方块游戏? 第10张
如何用java写俄罗斯方块游戏? 第11张

(08)还有一个主要的控制就是方块的左右移动,变形。左右变化控制方块的位置就行。变形则根据不同的方块可变形状变化,其实也是改变方块的位置就行了。

如何用java写俄罗斯方块游戏? 第12张
如何用java写俄罗斯方块游戏? 第13张
如何用java写俄罗斯方块游戏? 第14张

(09)尤其要注意的是,键盘事件和时间事件中都会操作当前方块。键盘事件中改变方块的形状,向左或右移动。时间事件中方块要不停的下移。所以,在两个事件中都需要请求锁、释放锁,以此做到数据同步。

如何用java写俄罗斯方块游戏? 第15张

(10)经验也只能写一个大概的设计,游戏主要就是控制方块移动、变形和游戏得分后消除,游戏结束判断等逻辑。想明白这些,实现起来就是界面布局,swing编程等。还要注意并发访问的情况等。如果有任何疑问,获取源码等,欢迎大家留言。

外语学习
校园生活
学习交流
资格考试
高考
科学
亲子