基于Java多线程的弹球游戏程序

基于Java多线程的弹球游戏程序


2024年5月16日发(作者:佳能打印机驱动下载官网)

ELECTRONICS WORLD

探索与观察

基于Java多线程的弹球游戏程序

福建船政交通职业学院信息与智慧交通学院 林恒建

Java程序设计语言提供了用户使用的多任务并发执行的能

力的支持。处在可执行状态中的应用程序称为进程。线程是比

进程更小的执行单元,一个进程可以分为若干个线程,形成多

条执行路线,完成多项操作。弹球游戏程序应用Java多线程,完

成不同颜色、不同运行速度、不同大小的弹球,每个弹球的运

动由一个各自独立的线程控制。在多线程教学中,为了能够更好

地实现教学目标以及教学工作的开展。通过弹球游戏图形化编

程,降低编程难度,减少挫折感、激发学生的学习积极性。

1 引言

弹球游戏程序应用Java语言提供的多线程支持,在程序

中完成多种弹球的实现。通过形象的图形化编程,降低编程

难度,减少挫折感、激发学生的学习积极性,并且能更好地

实现教学目标的设计以及教学工作的开展。

2 弹球游戏的实现

弹球游戏的实现的主要功能:

左上9球:从左上方弹出9个颜色随机、大小速度相同、间隔

时间90-590ms的小球;

右上单球:从右上方弹出1个颜色、大小、速度随机的小球;

左下7彩球:从左下方弹出7个大小、速度、间隔时间相同的7

彩小球;

右下9球:从右下方弹出9个颜色、大小、速度、间隔时间相

同的小球;

梦幻9球:

产生9个颜色、发球位置、大小、速度随机的

小球;

昨夜星辰:产生9个发球位置、大小、速度随机的白色小球;

其他说明:弹球线程数量为运动小球数量,当线程数量超过

200,建议不要再增加弹球数量,窗口标题显示运动小球数量,小

球弹出后,大约1min自动消失。

多线程弹球的实现:

class Ball extends Thread {

private Color color;

private int xsize = 10;//弹球大小

private int ysize= 10;

private int x = 0;//弹球位置

private int y = 0;

private int dx = 2;//弹球移动步长

private int dy = 2;

private Graphics g;

// 设置标题要用到

private Bounce b;

18

public Ball(Bounce b, Color co) {

color = co;

this.b = b;

g = phics();

}

//画出弹球

public void drawD() {

or(color);

Mode(kground());

g.fillOval(x, y, xsize, YSIZE);

}

public void draw() {

or(color);

g.fillOval(x, y, xsize, ysize);

Mode(kground());

}

//按步长移动弹球,在窗体边界回弹

public void move() {

g.fillOval(x, y, xsize, ysize);

x += dx;

y += dy;

if (x < 0) {

x = 0;

dx = -dx;

}

// 只在每次事件发生时重新计算窗体内画布

canvasWidth,canvasHeight

// 让运动更流畅。

if (x + XSIZE >= canvasWidth) {

x = canvasWidth - xsize;

dx = -dx;

}

if (y < 0) {

y = 0;

dy = -dy;

}

if (y + YSIZE >= canvasHeight) {

y = canvasHeight - ysize;

dy = -dy;

}

g.fillOval(x, y, xsize, ysize);

}

的宽和高

ELECTRONICS WORLD

探索与观察

public void run() {

threadCounter++;//计算线程数量

//根据线程数是否超过200,显示不同的标题。

if (threadCounter > 200) {

} else {

le("梦幻七彩弹球--线程数量:" + threadCounter+ " 线程数量已超过200,不要再增加弹球数量。");

le("梦幻七彩弹球--线程数量:" + threadCounter);

}

draw();

for (int i = 1; i <= 3500; i++) {

move();

try {

(15);

} catch (InterruptedException e) {

}

}

Mode(kground());

g.fillOval(x, y, xsize, ysize);

//当一个线程运行结束,减少线程数,并在标题中动态显示。

threadCounter--;

if (threadCounter > 200) {

} else {

le("梦幻七彩弹球--线程数量:" + threadCounter + " 线程数量已超过200,不要再增加弹球数量。");

le("梦幻七彩弹球--线程数量:" + threadCounter);

}

if (threadCounter == 0)

le("梦幻七彩弹球");

e();

}

随机设置弹球颜色

c = new Color((float) (), (float) (),

(float) ());

b = new Ball(this, c);

随机设置弹球大小,球的直径:size = (int) (100 * () + 1);

ze(size);ze(size);

随机发球位置, -Size(球的直径)确保球不会部分落在右、下边界外。

((int) ((canvasWidth - size) * ()));

((int) ((canvasHeight - size) * ()));

}

设置x,y,dx,dy, xsize, ysize代码省略。

3 结论

弹球程序应用Java语言提供的多线程支持,在程序中完成多种弹球的实现。特别是对线程数进行计算和显示,让学生感受线程数对程序

运行速度的影响,大部分计算机在线程数超过200个时会出现卡顿,通过形象的图形化编程,降低编程难度,减少挫折感、激发学生的学习

积极性,并且能加深对图形编程、可视化编程的理解,实现教学目标的设计以及教学工作的开展。

作者简介:林恒建(1965—),男,福建福州人,学士,讲师,研究方向:图形编程。

19


发布者:admin,转转请注明出处:http://www.yc00.com/num/1715790504a2672106.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信