java烟花游戏课程设计,Java多程应用实例制作烟花效果.doc

[摘要]Java多线程应用实例: 制作烟花效果 本例知识点 一句话讲解 新学知识 使用Graphics类 绘制烟花 使用Thread类 管理线程 已学知识 使用Math类 产生随机数 使用Color类 设置颜色 一、练习具体要求 本例制作烟花,运行效果如图94-1所示。

执行本例实例后,用鼠标点击浏览器中的面板,将出现五彩缤纷的烟花效果。

本实例的知识点有:鼠标事件的监听,Graphics类和Thread类的应用。

二、程序及注释 (1)编程思路:本例因为要模拟烟花效果,所以首先定义执行程序主线程的函数run()对一个烟花进行绘制。

在函数run()中定义Graphics类的对象,通过程序中的算法来绘制烟花。

然后,因为要实现烟花的缤纷闪烁效果,所以要通过Thread类的Thread.currentThread().sleep()方法使当前线程睡眠,让用户欣赏到当前的绘制效果。

最后,因为要实现人机交互.,所以首先要通过mousePressed(MouseEvent e)函数来实现对鼠标事件的监听,这样当按下鼠标时,产生一个新线程就可以看到一个新的烟花效果。

(2) 程序实现及注释: import java.awt.*; import java.applet.*; import java.awt.event.*; import javax.swing.*; public class Fireworks extends Applet implements MouseListener,Runnable { int x,y; int top,point; /** *对小程序进行变量和颜色的初始化。

*/ public void init() { x = 0; y = 0; //设置背景色为黑色 setBackground(Color.black); addMouseListener(this); } public void paint(Graphics g) { } /** *使该程序可以作为应用程序运行。

*/ public static void main(String args[]) { Fireworks applet = new Fireworks(); JFrame frame = new JFrame("TextAreaNew"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }); frame.getContentPane().add( applet, BorderLayout.CENTER); frame.setSize(800,400); applet.init(); applet.start(); frame.setVisible(true); } /** *程序主线程,对一个烟花进行绘制。

*/ public void run() { //变量初始化 Graphics g1; g1 = getGraphics(); int y_move,y_click,x_click; int v; x_click = x; y_click = y; y_move = 400; v = 3; int r,g,b; while(y_move > y_click) { g1.setColor(Color.black); g1.fillOval(x_click,y_move,5,5); y_move -= 5; r = (((int)Math.round(Math.random()*4321))%200)+55; g = (((int)Math.round(Math.random()*4321))%200)+55; b = (((int)Math.round(Math.random()*4321))%200)+55; g1.setColor(new Color(r,g,b)); g1.fillOval(x_click,y_move,5,5); for(int j = 0 ;j<=10;j++) { if(r>55) r -= 20; if(g>55) g -= 20; i

ca98a8bd08d247171f13f2da252580cc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值