1、项目介绍
俄罗斯方块游戏设计的核心就是利用一个指定二维数组的的值来表示方块的位置 ,然后通过该值来判断是否在游戏窗口内相应的正方形矩形内画出相应的方块。
把每个小方块抽象成一个类Diamond,该类具有的属性有:位置坐标xy、在主窗口显示的图片名称images、所属方块Diamonds、是否是活动状态activate等。该类还持有Main类的引用,极大的简化的编码的复杂度。
把每个下落的方块抽象成一个接口Diamonds,该接口定义了向左右移动、加速下落、方块变形、绘图、取得Diamond引用等方法。
BaseDiamonds类实现了Diamonds接口,并实现了接口里面的所有方法。该类持有四个Diamond类的引用,通过组合的方式实现了整个的俄罗斯方块(每个俄罗斯方块由四个小方块Diamond组成)。该类还有一个属性用来存储该方块四个Diamond对象的坐标值,该属性在该类的构造函数里面初始化。
考虑到每个方块的形状都不一样,因此如果要设计一个新方块类的时候,继承BaseDiamonds类,直接在构造器里传入四个小方块的相对坐标即可。
由于俄罗斯方块游戏需要自动产生不同的方块并且自动下落,而且需要使用键盘来控制方块的左右移动、加速以及变形等。因此,该游戏的设计需要使用多线程以及swing的消息处理机制。从多线程的角度考虑,主线程控制游戏的启动,另启动两个线程A、B。线程A控制方块的自由下落;线程B控制游戏窗口的实时刷新。
2、技术框架
运行系统:windows
编程语言:java
系统架构:gui界面
系统框架:Swing
数据库:无
Maven项目:否
运行环境:JDK8+idea
3、演示视频
基于Java的俄罗斯方块小游戏的设计与实现