,Java   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,Java
您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
JBuilder 2005开发Applet游戏全接触
[文章信息]
作者:陈雄华
时间:2005-02-22
出处:天极网
责任编辑:方舟
[文章导读]
本文拟通过一个耳熟能详的指法练习游戏讲解如何在JBuilder 2005下开发Applet应用程序
advertisement
热点推荐
· 深入探讨SQL Server 2000对XML的支持
· Swing(空)
· 3DS Stodio Max 宝典
· 中小企业服务器配置方案--前 言
· 中小企业服务器配置方案--代理接入服务器(3)
[正文]

上一页  1 2 3 4 5 6 7  下一页

  指法练习Applet游戏介绍

  1、界面及功能

  指法练习的Applet游戏的界面如下图所示:


图 1 指法练习的用户界面

  如上图所示,这个Applet共由11个组件组成,左边的主界面是画布Canvas组件,被分隔为10个栏。程序会随机在这些栏中产生下落的字母,用户按下匹配的字母键盘按键后,即为击中,相应的字母将消失,正确数递增1;字母落到画布底端后,还没有被击中,失败数递增1;每产生一个下落的字母,总数递增1。

  游戏提供了3个JButton的按钮,分别用于控制游戏的开始/暂停、结束以及保存游戏成绩。在未启动游戏前第一个按钮显示为三角箭头的图标,点击后启动游戏,随后按钮图标切换为暂停的图标。而第二个为停止按钮,其上显示结束的图标,当游戏处于运行或暂停的状态时,点击该按钮将停止游戏以便重新开始。而第三个按钮保存游戏的成绩到客户端的D:\result.txt文件中。

  整个界面采用BorderLayout布局管理器,画布位于BorderLayout.CENTER区,而右边的控制台JPanel位于BorderLayout.EAST区。控制台的JPanel采用GridLayout布局管理器。

  2、程序组成

  每个下落的字母对应一个线程实例,称为DropCharThread线程,它由一个产生器定时产生出来,这个产生器也是一个线程称为GenerateDropThread线程,下面是这个Applet的类图:


图 2 Applet类图

  TypeTrainApplet类继承了JApplet,是游戏的主类,DropCharThread和GenerateDropThread都是其内部类,后两者都继承Thread,以线程的方式运行,下面对这3个类重要的成员变量和成员方法进行说明。

  1).TypeTrainApplet

  继承JApplet的Applet主类,负责构造用户界面、响应用户操作事件、更新游戏统计数据等。

  · 重要成员变量

    统计数据变量

volatile int totalCount = 0;//生产下落字母的总数。
volatile int rightCount = 0;//正确击中的字母数。
volatile int errorCount = 0;//未被击中且到达画布底部的字母数。

  这3个变量用volatile作了修饰,这是因为这3个变量会被每个字母下落线程更改,为防止各个线程通过各自的缓存更改变量值造成线程间值的不同步,需要将这3个变量设置为volatile的类型,这样这些变量的更改值对于其他线程马上可见。

    字母下落速率控制变量

private static int stepLen = 2; //每次下落的步长,即字母每移一步的象素。
private static int stepInterval = 50; //每两步之间的时间间隔,以毫秒为单位。
private static int columnCount = 10; //画布被分隔为多个栏
private static int generateInterval = 500; //创建一个新的下落字母线程的时间间隔,以毫秒为单位

  Applet通过通过这4个变量达到控制产生字母的快慢和字母下落的速度及栏数,可以进一步规划这些值,以形成游戏的难度级别。有鉴于此,我们特地将这些参数的值通过HTML的<Applet>参数传入。这样,只需要更改HTML的<applet>参数值就可以达到控制游戏难度级别的目标,而不需更改Applet程序。

    其他

int colWidth; //下落字母每栏的宽度,在运行期才获取这个变量值,它由画布的宽度和栏数决定。
volatile char pressKeyChar; //记录当前按键对应的字母。
int statusCode = 0; //记录游戏所处的状态,其中1:运行态、,2:暂停态 0:停止态。

  · 重要成员方法

private void drawResult()//将统计结果写到界面的对应JLabel中。
private void resetGame()//重置游戏现场

  2) DropCharThread

  是一个线程,将一个随机的字母在画布的特定栏中往下落下,并实时检测是否被击中,如果击中马上消失,否则一直落到画布的底部。

  ·重要成员变量

char c; //对应的字母
int colIndex; //对应画布的栏序号,第一栏为1,第二栏为2,以此类推
int x, y; //当前字母在画布中的坐标

  ·动作类型常量

private static final int ACTION_DRAW_FONT = 1; //表示画字符
private static final int ACTION_CLEAR_FONT = 2; //表示清除字符

  不应当直接用1或2表示动作的类型,而应该定义一个更有意义的常量,这样不但于理解,也便于以后的维护。

  ·重要成员方法

public DropCharThread(char c, int colIndex)//构造函数,传入特定的字母和栏序号
private void draw(int actionType)//在画布中特写的位置上画字母

  3) GenerateDropThread

  ·重要成员变量

Random random = new Random(); //负责产生随机数

  ·重要成员方法

private char getRandomChar()//获取一个随机的字母

  负责定时产生一个DropCharThread线程实例,通过generateInterval成员变量控制产生DropCharThread线程实例的频率。

  当游戏玩家点击Applet的开始按钮后,Applet将启动游戏,这3个类之间的交互关系可以通过以下的顺序图来描述,如下图所示:


图 3 开始游戏的顺序图

  1)当用户按下Applet的开始按钮后激发一个事件。

  2) Applet响应这个事件,调用事件响应方法,在方法中实例化一个GenerateDropThread线程,并启动这个线程。

  3) GenerateDropThread线程定时产生一个DropCharThread线程,并让赋予一个随机的字母和栏序号。

  4)DropCharThread线程启动,将字母在特定的栏中从上至下落下。


上一页  1 2 3 4 5 6 7  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,Java相关内容,Java焦点新闻
  • 关于Java栈与堆的思考
  • 大道至简 Java 23种模式一点就通
  • JavaBeans程序开发从入门到精通
  • 使用SWT开发基于Java的图形用户界面
  • Java加密和数字签名编程快速入门
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,JavaAdvertisement