Java实现简单的球的弹射

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();
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值