上一部分讲完了方块类以及方块的7个子类队友7种不同形态以及每种形态方块的变化,现在开始正式来写游戏主要分为3个部分,一个是游戏主界面,一个是游戏中界面还有一个游戏结束时的界面。
1.游戏的这三种形态我们用一个枚举类来表示
1 | public enum GameState { |
2.游戏中涉及的一些常亮我们可以专门用一个类来保存这些,让代码的可读性更加高
1 | public class Conts { |
3.游戏可能会用到的一些素材(包括图片以及音频),我们可以用一个静态的方法,在项目运行之前就把素材存入我们的HashMap集合内,方便我们后续使用
1 | public static HashMap<String,BufferedImage> Images=new HashMap<String,BufferedImage>(); |
4.开始绘制界面(因为游戏中涉及监听事件,所以在继承JFrame的构造函数中添加了鼠标和键盘的监听事件)
1 | public Ui() { |
5.画板绘制游戏主界面
1 | if(gameState==GameState.WELCOME) { |
6.多线程控制游戏主界面的字体大小变化和颜色变化以及一闪一闪的效果
1 | if(gameState==GameState.WELCOME) { |
效果如图:
游戏主界面已经完成(比较粗制滥造,可以选几个好看的图片来修饰界面会比较美观)
下面开始游戏中界面的操作
1.画出游戏中界面的样子(游戏中界面一个1015的网格,用map数组来保存其中的0为空,其他的数值为不同的颜色),smap数组则是一个44保存方块,其数值的意义同上),其中的
1 | private int[][] map=new int[Conts.ROWS][Conts.COLS]; |
2.游戏中多线程运行(只需要控制方块慢慢下落即可),方块下落到最底部就会冻结,并且产生一个新的方块,
1 | else if(gameState==GameState.GAMEING) { |
到此游戏中界面生成方块,自动下落,下一个方块的显示,以及分数显示,道具显示,冻结消行,游戏结束的功能已经实行了,剩余的特色功能(使用特殊武器,已经方块移动变化等功能需要在监听中实现)。
本文链接: http://xingchen-cmd.github.io/2020/10/16/java%E5%AE%9E%E6%88%98-%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%E4%B8%AD/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!