用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

简单的弹球小游戏

2017-12-25 作者:柯侧耳倾听者举报

[java]代码库

package day06;
import javax.swing.JFrame;
public class BallFrame {
	public BallFrame(){
		JFrame frame = new JFrame();
		frame.setTitle("弹球游戏");
	    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
	    frame.setBounds(100,200,800,600);
	    frame.setVisible(true);
	    BallPanel bp = new BallPanel();
	    frame.add(bp);
	    frame.setVisible(true);
	}
	public static void main(String[] args) {
	   new BallFrame();
	}
}

package day06;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;
public class BallPanel extends JPanel implements MouseMotionListener {
	final static int RIIGHT_DOWN = 0;
	final static int LEFT_DOWN=1;
	final static int LEFT_UP =2;
	final static int RIGHT_UP=3;
	int f=0;
	int speed = 10;
	int bx=0;
	int by=0;
	int dx=100;
	int dy=400;
	
	public BallPanel(){
		move();
		addMouseMotionListener(this);
	}
	public void paint(Graphics g){
	super.paint(g);
	setBackground(Color.black);
	g.setColor(Color.yellow);
	g.fillOval(bx, by,20, 20);
	g.setColor(Color.blue);
	g.fillRect(dx, dy, 100, 20);
	
	}
	public void move(){
		new Thread(){
			public void run(){
				while(true){
					if(f==0){
						bx+=speed;
						by+=speed;
					}
					if(f==1){
						bx-=speed;
						by+=speed;
					}
					if(f==2){
						bx-=speed;
						by-=speed;
					}
					if(f==3){
						bx+=speed;
						by-=speed;
					}
					if(bx>800-20){
						if(f==0){
							f=1;
						}else{
							f=2;
						}
					}
					if(by>600-20){
						if(f==1){
							f=2;
						}else{
							f=3;
						}		
					}
					if(bx<0){
						if(f==1){
							f=0;
						}else{
							f=3;
						}
					}
					if(by<0){
						if(f==2){
							f=1;
						}else{
							f=0;
						}
					}
					if (by >= 400 - 20) {
						if (bx >= dx && bx <= dx + 100) {
							speed++;
						} else {
							Thread.currentThread().stop();
						}
						if (speed >= 20)
						{
							speed = 20;
						}
						if (f == 1) {
							f = 2;
						} else {
							f = 3;
						}
					}
					repaint();
					try {
						Thread.sleep(100);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		}.start();
	}
	@Override
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		dx = e.getX()-100/2;
		
	}
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。