单机俄罗斯方块游戏制作心得(四)
下面说的是游戏工具界面的搭建。在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();
}
单机俄罗斯方块游戏制作心得(四)相关推荐
- 塔防游戏制作教程(四)
嗨!大家好,我是小蚂蚁.今天我们继续分享制作一个塔防小游戏的第四节,如何实现炮塔的升级和出售功能. 如何实现炮塔的升级 在炮塔升级时,我们简单地做一些属性的提升以及外表的变化,例如当炮塔升级后,攻击速 ...
- 微信h5互动小游戏制作心得
随着近几年H5游戏营销的盛行,高质量高规格的精品H5游戏层出不穷,各大商家们也是动用不少人力财力力争打造出专属的H5营销游戏,到底如何才能打造出精品的H5互动营销小游戏呢? 杜绝换皮,至少做到微创新 ...
- U3D-亡命时速游戏制作(四)
亡命时速游戏制作4 1.在亡命时速游戏制作3的基础上,我们发现小车在运行时容易跑到屏幕外面,我们此时就无法观察,因此我们要使相机跟随小车的运动. 我们选择主摄像机(Main Camera),将它的Po ...
- 游戏制作第四棒——坦克大战
这次制作的游戏是我第一次使用MFC没有任何辅助情况下制作的,制作过程遇到过诸多困难,主要是SetTimer定时器的应用出问题.这个版本的坦克大战有许多bug,因为没有数据库所以只能由一个地图.与之前用 ...
- 基于pygame的射击小游戏制作(四)击杀外星人
在本篇文章中,主要学习射击子弹时外星人消失,达到击杀外星人的效果 一.编程思路 1.1击杀 我们需要在碰撞发生后让外星人立即消失,故在更新子弹的位置后检测碰撞.我们创建一个字典,这个字典的每一个键都是 ...
- RPG Maker XP游戏制作方法(四)
(3)这一步就是重点了,选择第二图层 图层是为了不然后加上去的素材被之前的素材的背景遮住而使用的 如果直接在第一图层增加一颗树 更换第二图层后 明显效果就好了很多
- U3D-亡命时速游戏制作(三)
亡命时速游戏制作3 1.在亡命时速游戏2的基础上,我们在Project中新建一个Scripts的文件夹,用于存放之后我们要写的脚本. 2.我们打开在mmmm文件下的子文件夹Vehicles,选择车辆1 ...
- 【Cocos游戏】Gamelook:骏梦许斌《秦时明月》制作心得分享
GameLook报道 / 7月6日,2014年第6期"GAMELOOK游戏开放日"在上海成功举办,本次活动由游族网络和童石集团倾情赞助. 活动现场,骏梦游戏创始人许斌作了作了< ...
- (心得三)java俄罗斯方块小游戏编写心得
在"java俄罗斯方块小游戏编写心得02"中,我们已经做到了方块的各种功能的实现,那么接下来我们需要一个destroyLine()方法来对方块进行消除.我们需要想一个问题,当一个方 ...
- (心得二)java俄罗斯方块小游戏编写心得
在"java俄罗斯方块小游戏编写心得01"中已经将游戏界面完成,那么接下来就是要让方块动起来. 我们之前在写Cell类时,曾经给每个最基本小方块定义了三个方法,即左移.右移.下落, ...
最新文章
- 把 Bug 晾几天就能解决了!!! | 每日趣闻
- 怎样学习linux系统管理员,linux系统管理员学习笔记
- 如何oracle数据库用户名和密码,Oracle数据库用户名及密码查询
- 违反Apache 2.0许可证再分发被指控,火山引擎回应
- 洛谷P1605:迷宫(DFS)
- MFC中CString,int,string,char * ,char[] 之间互转
- CNN————激活可能性小的神经元不代表这个神经元的用处小
- 位CPU和64位CPU 区别
- 第1章 《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明》目录
- 匈牙利算法【匹配问题】
- littleVGL开发:littleVGL的介绍
- 【day02】选择题题解
- python+openCV滑动条的使用
- STM32(RFID)阶段三(触屏数字键盘)
- 影响ae渲染时间的计算机配置,分享两套影视后期电脑配置2019 能流畅使用ae和pr的电脑主机推荐...
- 077 三角函数定积分性质
- AC Dream1069
- 程序猿是怎么找对象的
- BC26 TCP透传
- 25个例子学会Pandas Groupby 操作(附代码)