billiardball.java

来自「double link list code」· Java 代码 · 共 59 行

JAVA
59
字号
//Hao Chen
//0247604
//com132
//lab8
//dangerchen@hotmail.com

import java.awt.*;
import java.applet.Applet;


public class BilliardBall{
    private BilliardTable t;//declar table t
    private Color bc;//declar ball's color
    private int bw;//declar ball's width
    private int x, y;//declar position
    private int xChange = 1, yChange = 1;//declar and initial the change

    public BilliardBall (BilliardTable t, Color bc, int bw){//constructor
		this.t=t;//sign data to object t
		this.bc=bc;//sign color data to instance vairable bc
		this.bw=bw;//sign ball's width data to instance variable bw
	}
    public static void pause (int n) // wait n milliseconds
    {
        try { Thread.sleep (n); } catch (InterruptedException e) {}
    }

    public void roll (Graphics g)
    {   int leftx=t.getTablex();//name tablex of object t
    	int rightx=t.getTablex()+t.getTablew()-bw;
    	int topy=t.getTabley();
    	int boty=t.getTabley()+t.getTableh()-bw;
        x = t.getTablex() + (int) (Math.random ()*(t.getTablew()-bw)) ;
        //make random initial position
		y = t.getTabley() + (int) (Math.random ()*(t.getTableh()-bw)) ;

        for(int n=1; n<10000; n++){//create changing ball
			 Color tac = t.getTableColor();
			 g.setColor(tac);
            //set the table color to fill in the blank after the runing ball
             g.fillOval(x,y,bw,bw);

             if(x<=leftx||x>=rightx)//if the ball hit the left or right wall
                xChange=-xChange;////ball will return
             if(y<=topy||y>=boty)
                yChange=-yChange;

                x=x+xChange;//correct the xchange
                y=y+yChange;

			g.setColor(bc);//fill the ball's color in new position
     		g.fillOval(x,y,bw,bw);
     	}



    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?