跟我学Java Swing之游戏设计(3)

好喝Cc

好喝Cc

2016-02-19 13:41

下面图老师小编要跟大家分享跟我学Java Swing之游戏设计(3),简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

  上一节:跟我学Java Swing之游戏设计(2)

  谁说编写程序不是一项艺术?那些命令与符号正像一幅工笔画,一笔一画产生出多少变幻莫测的结果。不过,光有骨架的工笔画恐怕也无法成为绝世佳作,那么,今天就让我们来为自己的作品添上最初的绚丽色彩吧。

!-- frame contents -- !-- /frame contents --

    前言

  今天我们会为游戏添加动画效果,这将会涉及到图形处理,还有线程的基本概念,这可是一项非常有意思的工作哦。本期源程序下载(点击下载, 2KB, WinZip压缩)。

  上一期我们完成了游戏界面的设计,可是游戏的功能却还十分单薄,比如说几个人同时玩一个游戏,我们怎么比较谁玩得比较好呢,就算是自己一个人在玩,也得知道自己每次的成绩啊。竞技是游戏的主要动力之一,为了提高游戏的可玩性,我们得加入计时和计分的功能才行。

  关于游戏的计时和计分功能,因为与我们Swing的主题关系不大,这部分功能的实现我就不说了,假如大家感爱好的话可以参考一下我的源程序,里面有具体的说明,在这里我们就只讨论一下如何将显示界面做得漂亮。

  JLabel和Font

  还记得最开始的主界面是如何设计的吗?我们将界面分成了三个部分:系统菜单、游戏区、用户交互区。用户交互区的作用就是放置用户的操作及反馈信息,计时和计分功能自然就是放在这里。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  首先我们可以放置一个文本控件,然后将这个控件的背景设置为界面的背景色或透明色。那么这个控件应该是哪个呢?这个控件就是JLabel!JLabel的用法并不难,假如你能够熟练使用JButton的话,那么JLabel控件也会是小case了,让我们一起来试试吧:

JLabel score = new JLabel("307"); // 假设用户当前的分数为307分
  actionPanel.add(score);

  看看程序运行的结果,感觉如何?你也许会说:字太小了,而且颜色也太暗了,看不太清楚。没关系,这很轻易解决:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

JLabel score = new JLabel("307");
  Font font = new Font("宋体", Font.BOLD, 48);
  score.setForeground(Color.yellow);
  score.setFont(font);
  actionPanel.add(score);

  在上面的代码中,我们首先创建了一个字体对象font,Font构造函数中3个参数的意义依次为:使用字体的名称、字体的样式(普通、粗体、斜体等)以及字体的大小等;然后,我们使用setForeground来设计JLabel的前景色;最后,我们将JLabel的字体改为我们创建的字体。现在我们再来看看程序运行的结果,是不是效果好多了(见图1)?

  在游戏的过程中,只要时间或者分数发生变化,我们就可以使用JLabel.setText(String s)来更新显示。

  细心的朋友可能会发现,在我们显示时间和分数的过程中,假如将字体设置得很大,显示内容虽然更轻易看清,但视觉效果却变得很差。这是因为字体越大,字体上的锯齿就会越明显,这是Swing控件显示文字的通病,遗憾的是暂时还没有很有效的解决方法(见图2)。

  善用Graphics绘制图形

  在前面所有的章节中,我们都是使用现成的控件来满足自己的需要,现成的控件虽然使用方便,却不能完全满足我们的要求。这时我们就需要了解一下如何不使用控件来绘制图形。

!-- frame contents -- !-- /frame contents --

  

展开更多 50%)
分享

猜你喜欢

跟我学Java Swing之游戏设计(3)

编程语言 网络编程
跟我学Java Swing之游戏设计(3)

跟我学Java Swing之游戏设计(4)

编程语言 网络编程
跟我学Java Swing之游戏设计(4)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

跟我学Java Swing之游戏设计(1)

编程语言 网络编程
跟我学Java Swing之游戏设计(1)

跟我学SQL

编程语言 网络编程
跟我学SQL

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

跟我学MS SQL Server(3)

编程语言 网络编程
跟我学MS SQL Server(3)

跟我学XSL(三)

Web开发
跟我学XSL(三)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Javascript实例教程(17) 使用字符串函数

Javascript实例教程(17) 使用字符串函数

浅析Java多线程编程中的高级技术

浅析Java多线程编程中的高级技术
下拉加载更多内容 ↓