java课程设计烟花游戏.doc
《java课程设计烟花游戏.doc》由会员分享,可在线阅读,更多相关《java课程设计烟花游戏.doc(18页珍藏版)》请在冰豆网上搜索。
![java课程设计烟花游戏.doc](https://file1.bdocx.com/fileroot1/2022-10/19/47c6759c-8834-4556-bf11-24325cff1b28/47c6759c-8834-4556-bf11-24325cff1b281.gif)
课程设计说明书NO.18
烟花游戏
1.课程设计的目的
随着现代科学技术的进步,Java语言在编程方面的优势使得编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响。
在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。
为了加深和巩固所学的Java知识,增强运用Java语言编程的能力,深刻把握Java语言的重要概念及其面向对象的特性,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用,锻炼自己应用面向对象的思想和设计方法解决实际问题的能力,使我们能更好的应用所学的课程知识解决实际问题,达到学为所用的目的。
加深对Java基本知识点要素和控制结构的理解,掌握Java的基本内容及程序设计的基本方法与编程技巧。
Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。
Java的平台标准有JavaME,JavaSE和JavaEE。
Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。
目前在众多的支持Java的开发工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。
其中JavaDevelopmentKit简称JDK是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
能够熟练地掌握在系统上编辑、编译、连接和运行Java程序的方法。
通过设计一个完整程序,来达到把所学到的知识活学活用把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法。
java编程语言在编程方面的具体应用,以及使用面向对象方法,对小应用程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。
在编程我们使用的java语言,是目前比较流行的编程语言。
在当今这个的时代,java语言在编程方面的优势使得编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
学习任何知识得目的都是要将它运用到实践中去,所以我们要运用已有的知识,独立得将这个课程设计完成,只有这样,我们才能将知识变成本领,变成属于自己得东西,通过一个学习得学习,我们已经有可一定得Java基础,现在我们就要利用这些基础,来完成课程设计。
2.设计方案论证
2.1设计思路
本次课程设计主要是用java语言编写程序实现放烟花的小游戏。
执行本例后,用鼠标点击浏览器中的面板,释放烟花,烟花可以随鼠标的而变化,在不同的位置绽放,面板上将出现五彩缤纷的烟花效果。
烟花可以同时绽放。
本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数run()对一个烟花进行绘制。
在函数run()中定义Graphics类的对象,通过程序中的算法来绘制烟花。
客户端发送的信息应该分为公用以及私有的信息,然后SendMessageCenter根据信息的类别来判断应该将信息发送给哪些用户。
拥有权限的客户端可以动态地建立聊天频道,然后SendMessageCenter还可以判断信息所属的聊天频道来决定向谁发送信息客户端可以执行聊天命令。
所有这些问题都可以通过Client与Server类的SendMessageCenter方法建立一个不很复杂的通信协议来完成。
一个通信协议就是一组约定,将相关的信息制定一个格式标准,让接收方和发送方都知道这条信息将作为什么身份进行通信。
例如,发送方发送的信息为普通的聊天信息时,可以增加一个前缀:
words="[chatmessage]"+words,而发送一条要求返回在线名单的信息时,可以发送另一个前缀words="[returnonlinelist]"。
当SendMessageCenter接收到客户端信息时,首先判断message的前缀,如果是"[chatmessage]",则传送给其他客户端,如果是"[returnonlinelist]",则返回给该客户端一个OnlineList。
然后,因为要实现烟花的缤纷闪烁效果,所以要通过Thread类的Thread.currentThread().sleep()方法使当前线程睡眠,让用户欣赏到当前的绘制效果。
最后,因为要实现人机交互.,所以首先要通过mousePressed(MouseEvente)函数来实现对鼠标事件的监听,这样当按下鼠标时,产生一个新线程就可以看到一个新的烟花效果
2.2设计方法
表1程序中涉及的自定义类表
类名
作用
父类
Fireworks
对小程序进行变量和颜色的初始化
Applet
在设计烟花游戏时,需要编写1个Java源文件:
Fireworks。
作用是对小程序进行变量和颜色的初始化。
程序中涉及的自定义类有Fireworks,其作用如表1所示:
(1)游戏主界面模块:
游戏主界面模块,主要包括游戏图形区域界面、游戏开始按钮、暂停游戏按钮、关闭按钮。
游戏的主界面应该力求美观,爽心悦目。
游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、新生方块的预览、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。
从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。
在游戏性能方面,本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
(2)游戏控制模块:
进入游戏后,点击主屏幕。
即会有烟花从底部涌出烟花,并在点击处爆炸燃烧。
游戏的操作和画面都给游戏提高了游戏的娱乐性。
为了能够给玩家一个很好的游戏环境。
对于烟花游戏,其主要优点在于游戏操作简单,画面感强。
对于大众是休闲娱乐的好项目。
并且制作简单,易懂,巧妙的运用了我们所学习的java基础知识。
系统的整体布局为:
CardLayout布局,采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。
MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener和MouseListener接口,所创建的对象:
mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。
标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图1所示。
图1.MineArea类的UML
2.3功能模块
根据本次课程设计的目的和以上的功能描述,将该烟花游戏的系统分为个主要模块:
背景模块、控制模块、变量模块、绘图模块和颜色模块。
系统功能模块图,如图1所示。
烟花游戏
背景
模块
控制
模块
绘图模块
变量模块
颜
色模块
图2.块图烟花游戏系统功能模
2.31可行性论证
表2.程序中类的总结
本例知识点
一句话讲解
新学知识
使用Graphics类
绘制烟花
使用Thread类
管理线程
已学知识
使用Math类
产生随机数
使用Color类
设置颜色
本例制作烟花,运行效果如图后所示。
执行本例实例后,用鼠标点击浏览器中的面板,将出现五彩缤纷的烟花效果。
此课程设计的知识点有:
鼠标事件的监听,Graphics类和Thread类的应用。
2.4程序中主要方法说明
2.4.1publicvoidinit()
该方法设置烟花游戏小程序的背景色。
2.4.2publicvoidpaint(Graphicsg)
使该程序可以作为应用程序运行。
2.4.3publicvoidrun()
变量初始化。
如程序中:
publicclassFireworksextendsAppletimplementsMouseListener,Runnable
{
intx,y;
inttop,point;
/**
*对小程序进行变量和颜色的初始化。
并设置背景色为黑色
如程序中:
publicvoidinit()
{
x=0;
y=0;
//设置背景色为黑色
2.4.4Thread.currentThread().sleep()
使当前线程睡眠。
2.4.5publicvoidmousePressed(MouseEvente)
publicvoidmousePressed(MouseEvente)
{
x=e.getX();
y=e.getY();
Threadone;
one=newThread(this);
one.start();
one=null;
}
/**
*实现MouseListener接中的方法。
为一个空方法。
2.4.6publicvoidmouseReleased(MouseEvente)
publicvoidmouseReleased(MouseEvente)
{
}
/**
*实现MouseListener接中的方法。
为一个空方法。
2.4.7publicvoidmouseEntered(MouseEvente)
publicvoidmouseEntered(MouseEvente)
{
}
/**
*实现MouseListener接中的方法。
为一个空方法。
*/
2.4.8publicvoidmouseExited(MouseEvente)
publicvoidmouseExited(MouseEvente)
{
}
/**
*实现MouseListener接中的方法。
为一个空方法。
2.4.9举例介绍程序主线程,对烟花的绘制。
publicstaticvoidmain(Stringargs[]){
Fireworksapplet=newFireworks();
JFrameframe=newJFrame("TextAreaNew");
frame.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
frame.getContentPane().add(
applet,BorderLayout.CENTER);
frame.setSize(800,400);
applet.init();
applet.start();
frame.setVisible(true);
}
/**
*程序主线程,对一个烟花进行绘制。
3.设计结果与分析
程序在JCreator中运行之后的初始界面如图2所示:
图3.烟花游戏程序运行