Java实现简单的球的弹射,碰到墙壁就反弹一下,代码如下:
package 弹射窗体; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.event.WindowStateListener; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; public class Main extends JFrame implements Runnable { int x=40; int y=30; int width=50; int height=50; boolean xAdd=true; boolean yAdd=true; public void paint(Graphics g) { super.paint(g); //g.fillRect(x, y, width, height); g.setColor(Color.red); g.fillOval(x, y, width, height); } int i=1; @Override public void run() { // TODO Auto-generated method stub while(true) { if(yAdd) y+=15; else y-=15; if(y>=this.getHeight()-height||y<=25) yAdd=!yAdd; if(xAdd) x+=30; else x-=30; if(x>=this.getWidth()-width||x<=5) xAdd=!xAdd; repaint(); try { Thread.sleep(40); i++; } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { // Main main=new Main(); // // main.setVisible(true); // main.run(); Main main=new Main(); main.setVisible(true); main.setBounds(50, 50, 800, 600); Thread thread=new Thread(main); thread.start(); try { Image image=ImageIO.read(new File(Main.class.getResource("").toString())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }