java学习——113、球球动起来

sleep()方法除了让文字滚动之外,图画也一样可以活动起来。

本篇示例如下视频所示:

其完整代码如下:

import java.awt.*;

import javax.swing.*;

public class ThreadBall extends JFrame implements Runnable{

private Ballcan ball;

public ThreadBall(){

super("球球动起来");

this.setBounds(200,200,200,200);

this.setVisible(true);

ball=new Ballcan();

this.getContentPane().add(ball);

}

public void run(){

while(true){//循环,无限次

ball.repaint();//重新调用raint()方法

try{Thread.sleep(100);}//休眠100ms

catch(Exception e){e.getStackTrace();}

}

}

public static void main(String args[]){

ThreadBall target=new ThreadBall();

Thread thread=new Thread(target);

thread.start();//线程启动

}

class Ballcan extends Canvas{//内部类,继承自画布类

intx,y;//球球的坐标

public Ballcan(){

x=10;

y=10;

}

public void paint(Graphics g){

g.setColor(Color.red);

g.fillOval(x, y, 50, 50);//画圆,在坐标x,y的位置

x+=10;//下次坐标x+10

y+=10;//下次坐标y+10

if(x>=this.getWidth()){//如果x坐标到底了,就让其从原点开始

x=0;

y=0;

}

if(y>=this.getHeight()){//如果y坐标到底了,就让其从原点开始

y=0;

x=0;

}

}

}

}

在本例中,可以将球改为矩形,椭圆等形状,也可以修改坐标,坐标轨迹不一样,图画的运行轨迹也会相应地发生改变。在很多的游戏当中,均可以用此种方法来实现,游戏中角色的变动。

如将x,y的坐标必为随机值,便可实现轨迹的随机出现。

(0)

相关推荐