Fork me on github

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

}
复制代码
posted @   我是小茗同学  阅读(1141)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
查看
评论
点击右上角即可分享
微信分享提示