下面说的是游戏工具界面的搭建。在MainFrame里定义下面属性

private GamePanel gamePanel;
 //级别
 private JLabel levelTextLabel = new JLabel("级别");
 private JLabel levelLabel = new JLabel();
 private Box levelTextBox = Box.createHorizontalBox();
 private Box levelBox = Box.createHorizontalBox();
 //分数
 private Box scoreTextBox = Box.createHorizontalBox();
 private Box scoreBox = Box.createHorizontalBox();
 private JLabel scoreTextLabel = new JLabel("分数");
 private JLabel scoreLabel = new JLabel();
 //下一个
 private Box nextTextBox = Box.createHorizontalBox();
 private JLabel nextTextLabel = new JLabel("下一个");
 //继续
 private Box resumeBox = Box.createHorizontalBox();
 private JLabel resumeLabel = new JLabel();
   //暂停
 private Box pauseBox = Box.createHorizontalBox();
 private JLabel pauseLabel = new JLabel();
 //开始
 private Box startBox = Box.createHorizontalBox();
 private JLabel startLabel = new JLabel(); 
 //工具类
 private JPanel toolPanel = new JPanel();
 在MainFrame类里的构造器里添加下面代码来创造界面public MainFrame() {
  this.currentLevel = 1;

this.gamePanel = new GamePanel(this);
  
  BoxLayout toolPanelLayout = new BoxLayout(this.toolPanel, BoxLayout.Y_AXIS);
  this.toolPanel.setLayout(toolPanelLayout);
  this.toolPanel.setBorder(new EtchedBorder());
  this.toolPanel.setBackground(Color.gray);
  //分数
  this.scoreTextBox.add(this.scoreTextLabel);
  this.scoreLabel.setText(String.valueOf(this.score));
  this.scoreBox.add(this.scoreLabel);
  //级别
  this.levelTextBox.add(this.levelTextLabel);
  this.levelLabel.setText(String.valueOf(this.currentLevel));
  this.levelBox.add(this.levelLabel);
  //继续按钮
  this.resumeLabel.setIcon(RESUME_ICON);
  this.resumeLabel.setPreferredSize(new Dimension(3, 25));
  this.resumeBox.add(this.resumeLabel);
  //暂停按钮
  this.pauseLabel.setIcon(PAUSE_ICON);
  this.pauseLabel.setPreferredSize(new Dimension(3, 25));
  this.pauseBox.add(this.pauseLabel);
  //开始
  this.startLabel.setIcon(START_ICON);
  this.startLabel.setPreferredSize(new Dimension(3, 25));
  this.startBox.add(this.startLabel);
  //下一个
  this.nextTextBox.add(this.nextTextLabel);

this.toolPanel.add(Box.createVerticalStrut(10));
  this.toolPanel.add(scoreTextBox);
  this.toolPanel.add(Box.createVerticalStrut(10));
  this.toolPanel.add(scoreBox);
  this.toolPanel.add(Box.createVerticalStrut(10));
  this.toolPanel.add(levelTextBox);
  this.toolPanel.add(Box.createVerticalStrut(10));
  this.toolPanel.add(levelBox);
  this.toolPanel.add(Box.createVerticalStrut(15));
  this.toolPanel.add(this.resumeBox);
  this.toolPanel.add(Box.createVerticalStrut(15));
  this.toolPanel.add(this.pauseBox);
  this.toolPanel.add(Box.createVerticalStrut(15));
  this.toolPanel.add(this.startBox);
  this.toolPanel.add(Box.createVerticalStrut(30));
  this.toolPanel.add(this.nextTextBox);

this.blankBox.add(Box.createHorizontalStrut(99));
  this.toolPanel.add(blankBox);
  
  this.add(this.gamePanel, BorderLayout.CENTER);
  this.add(this.toolPanel, BorderLayout.EAST);
  this.setPreferredSize(new Dimension(349, 416));
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setLocation(350, 200);
  this.setResizable(false);
  this.setTitle("俄罗斯方块");
  this.pack();
   }

单机俄罗斯方块游戏制作心得(四)相关推荐

  1. 塔防游戏制作教程(四)

    嗨!大家好,我是小蚂蚁.今天我们继续分享制作一个塔防小游戏的第四节,如何实现炮塔的升级和出售功能. 如何实现炮塔的升级 在炮塔升级时,我们简单地做一些属性的提升以及外表的变化,例如当炮塔升级后,攻击速 ...

  2. 微信h5互动小游戏制作心得

    随着近几年H5游戏营销的盛行,高质量高规格的精品H5游戏层出不穷,各大商家们也是动用不少人力财力力争打造出专属的H5营销游戏,到底如何才能打造出精品的H5互动营销小游戏呢? 杜绝换皮,至少做到微创新 ...

  3. U3D-亡命时速游戏制作(四)

    亡命时速游戏制作4 1.在亡命时速游戏制作3的基础上,我们发现小车在运行时容易跑到屏幕外面,我们此时就无法观察,因此我们要使相机跟随小车的运动. 我们选择主摄像机(Main Camera),将它的Po ...

  4. 游戏制作第四棒——坦克大战

    这次制作的游戏是我第一次使用MFC没有任何辅助情况下制作的,制作过程遇到过诸多困难,主要是SetTimer定时器的应用出问题.这个版本的坦克大战有许多bug,因为没有数据库所以只能由一个地图.与之前用 ...

  5. 基于pygame的射击小游戏制作(四)击杀外星人

    在本篇文章中,主要学习射击子弹时外星人消失,达到击杀外星人的效果 一.编程思路 1.1击杀 我们需要在碰撞发生后让外星人立即消失,故在更新子弹的位置后检测碰撞.我们创建一个字典,这个字典的每一个键都是 ...

  6. RPG Maker XP游戏制作方法(四)

    (3)这一步就是重点了,选择第二图层 图层是为了不然后加上去的素材被之前的素材的背景遮住而使用的 如果直接在第一图层增加一颗树 更换第二图层后 明显效果就好了很多

  7. U3D-亡命时速游戏制作(三)

    亡命时速游戏制作3 1.在亡命时速游戏2的基础上,我们在Project中新建一个Scripts的文件夹,用于存放之后我们要写的脚本. 2.我们打开在mmmm文件下的子文件夹Vehicles,选择车辆1 ...

  8. 【Cocos游戏】Gamelook:骏梦许斌《秦时明月》制作心得分享

    GameLook报道 / 7月6日,2014年第6期"GAMELOOK游戏开放日"在上海成功举办,本次活动由游族网络和童石集团倾情赞助. 活动现场,骏梦游戏创始人许斌作了作了< ...

  9. (心得三)java俄罗斯方块小游戏编写心得

    在"java俄罗斯方块小游戏编写心得02"中,我们已经做到了方块的各种功能的实现,那么接下来我们需要一个destroyLine()方法来对方块进行消除.我们需要想一个问题,当一个方 ...

  10. (心得二)java俄罗斯方块小游戏编写心得

    在"java俄罗斯方块小游戏编写心得01"中已经将游戏界面完成,那么接下来就是要让方块动起来. 我们之前在写Cell类时,曾经给每个最基本小方块定义了三个方法,即左移.右移.下落, ...

最新文章

  1. 把 Bug 晾几天就能解决了!!! | 每日趣闻
  2. 怎样学习linux系统管理员,linux系统管理员学习笔记
  3. 如何oracle数据库用户名和密码,Oracle数据库用户名及密码查询
  4. 违反Apache 2.0许可证再分发被指控,火山引擎回应
  5. 洛谷P1605:迷宫(DFS)
  6. MFC中CString,int,string,char * ,char[] 之间互转
  7. CNN————激活可能性小的神经元不代表这个神经元的用处小
  8. 位CPU和64位CPU 区别
  9. 第1章 《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明》目录
  10. 匈牙利算法【匹配问题】
  11. littleVGL开发:littleVGL的介绍
  12. 【day02】选择题题解
  13. python+openCV滑动条的使用
  14. STM32(RFID)阶段三(触屏数字键盘)
  15. 影响ae渲染时间的计算机配置,分享两套影视后期电脑配置2019 能流畅使用ae和pr的电脑主机推荐...
  16. 077 三角函数定积分性质
  17. AC Dream1069
  18. 程序猿是怎么找对象的
  19. BC26 TCP透传
  20. 25个例子学会Pandas Groupby 操作(附代码)

热门文章

  1. React:Hook
  2. Java编程:排序算法——冒泡排序
  3. HTML:表格、表单和rem
  4. 计算机科学家图灵,伟大的计算机科学家图灵
  5. jmeter监控内存,CPU等方法
  6. 论文笔记_S2D.02-2013-CVPR-结合三维场景重建和类别分割
  7. asp.net dev xtraReporting(一)静态页面
  8. SpringMVC系列(四)使用 POJO 对象绑定请求参数值
  9. 笨鸟先飞之ASP.NET MVC系列之过滤器(04认证过滤器)
  10. 在 Panorama 页面中添加 ApplicationBar