您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页java初学编程之小球碰撞

java初学编程之小球碰撞

来源:好走旅游网
Java窗口程序小球碰撞

准备工作:

首先确定自身机器应装有jdk,如果没有请到这个官方网站

http://www.oracle.com/technetwork/indexes/downloads/index.html#java上下载。 小球程序的基本架构组成:

1、对象小球 2、窗口主程序 3、小球运动程序 注意:你看到的小球运动其实就是视觉的欺骗,因为屏幕的刷新速度和重绘速度造成的错觉让人觉得是在运动。因此程序的运动其实就是图像的重新绘制和生成。 以下是编制的小球程序:

首先是小球这个对象的java程序Ball.java

import java.awt.Color; import java.awt.Graphics;

public class Ball { /** * 球的八个方向 */ public final static int LEFT_UP=0; public final static int LEFT_DOWN=1; public final static int RIGHT_UP=2; public final static int RIGHT_DOWN=3; public final static int UP=4; public final static int DOWN=5; public final static int RIGHT=6; public final static int LEFT=7; /** * 球的5个属性 */ private int x,y; private int r; private Color color; private int oraintation;//小球的方向 public Ball(int r,int x,int y,Color color,int oraintation){ this.r=r; this.x=x; this.y=y; this.color=color; this.oraintation=oraintation; }

public void draw(Graphics g){ g.setColor(color); g.fillArc(x-r, y-r, r/2, r/2, 0,360); }

public int getX() { return x; }

public void setX(int x) { this.x = x; }

public int getY() { return y; }

public void setY(int y) { this.y = y; }

public int getR() { return r; }

public void setR(int r) { this.r = r; }

public Color getColor() { return color; }

public void setColor(Color color) { this.color = color; }

public int getOraintation() { return oraintation; }

public void setOraintation(int oraintation) {

this.oraintation = oraintation; } }

然后是主程序BallMovingFrame.java import javax.swing.JFrame;

public class BallMovingFrame extends JFrame{ public static void main(String args[]){ BallMovingPanel panel= new BallMovingPanel(); BallMovingFrame b =new BallMovingFrame(); b.setSize(640, 480); b.setVisible(true); b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b.setTitle(\"ball\"); b.add(panel); panel.startRun(); } }

最后是绘制小球的程序BallMovingPanel.java

import java.awt.Color; import java.awt.Graphics; import java.util.Random;

import javax.swing.JPanel;

public class BallMovingPanel extends JPanel{ private Ball[] allBall; private Color[] color; private Ball ball; public BallMovingPanel(){ allBall=new Ball[10]; color=new Color[10]; color[0]=Color.BLACK; color[1]=Color.BLUE;

color[2]=Color.CYAN; color[3]=Color.GRAY; color[4]=Color.RED; color[5]=Color.green; color[6]=Color.YELLOW; color[7]=Color.magenta; color[8]=Color.ORANGE; color[9]=Color.LIGHT_GRAY; Random ran=new Random(); for(int i=0;ipublic void paint(Graphics g){ super.paint(g); for(int i=0;iallBall[i].draw(g);//调用小球类里的绘画方法 } }

public void startRun(){ new Thread(){

public void run(){ while(true){

for(int j=0;j<10;j++){ for(int i=0;i<10;i++){

//int r = allBall[i].getR();

int f = allBall[i].getOraintation(); int m = allBall[i].getX(); int n = allBall[i].getY(); if(f==ball.LEFT_UP){ m--;n--; if(m<35){

f = ball.RIGHT_UP; } if(n<35){

f = ball.LEFT_DOWN; }

}else if(f==ball.LEFT_DOWN){ m--;n++;

if(m<35){

f = ball.RIGHT_DOWN; }

if(n>450){

f = ball.LEFT_UP; }

}else if(f==ball.RIGHT_UP){ m++;n--;

if(m>640-35){

f = ball.LEFT_UP; }

if(n<35){

f = ball.RIGHT_DOWN; }

}else if(f==ball.RIGHT_DOWN){ m++;n++; if(m>640-60){

f = ball.LEFT_DOWN; }

if(n>480-60){

f = ball.RIGHT_UP; }

}else if(f==ball.UP){ n--;

if(n<35){

f = ball.DOWN; }

}else if(f==ball.DOWN){ n++;

if(n>480-40){ f = ball.UP; }

}else if(f==ball.LEFT){ m--;

if(m<35){

f = ball.RIGHT; }

}else if(f==ball.RIGHT){ m++;

if(m>640-40){ f = ball.LEFT; } }

allBall[i].setOraintation(f);

allBall[i].setX(m); allBall[i].setY(n); }

}try {

Thread.sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generated catch block e.printStackTrace(); }

repaint(); } } }.start(); } }

上面程序编制完后,我们可以更加一层楼的去提升一步,只需点击一个批处理文件就可以让其运行了。

首先确定你是windows系统,然后创建 小球.txt 文件 然后在文件中输入 javac Ball.java

javac BallMovingPanel.java javac BallMovingFrame.java java BallMovingFrame

完成后报文文件。

最后将 小球.txt 文件修改成 小球.bat 文件。 完成后,就可以点击此文件进行运行了。

注意:这4个文件必须在同一文件夹下,否则会报错。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务