栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 桌球小游戏

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 桌球小游戏

一、创建项目
  1. 创建一个 demo0 项目。

  2. 在项目根目录中创建 image 文件夹,并把下面两张图片拷贝到 image 目录中。

    1. 图 1

    2. 图 2

  3. 在 src 中创建 BallGame 类。

  4. 目录结构如下:

二、出现窗口
  1. 代码:

    // 导入包
    import java.awt.*;
    import javax.swing.*;
    
    // 定义 BallGame 类并继承 javax.swing.* 中的窗口类
    public class BallGame extends Jframe {
    
        // 加载窗口
        void launchframe()
        {
            setSize(300,300);		// 窗口大小
            setLocation(50,50);		// 窗口位置
            setVisible(true);		// 控制窗口的显隐
        }
    
        // 入口
        public static void main(String[] args)
        {
            BallGame game = new BallGame();
            game.launchframe();
        }
    
    }
    
  2. 运行结果:

三、加载图片
  1. 代码:

    // 导入包
    import java.awt.*;
    import javax.swing.*;
    
    // 定义 BallGame 类并继承 javax.swing.* 中的窗口类
    public class BallGame extends Jframe {
    
        // 引入图片
        Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
        Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
    
        // 画窗口
        public void paint(Graphics g)
        {
            System.out.println("画了一次窗口");
            g.drawImage(desk,0,0,null);         // 先画桌面,桌面在底层
            g.drawImage(ball,100,100,null);     // 后画球,球在桌面上
        }
    
        // 加载窗口
        void launchframe()
        {
            setSize(856,500);        // 窗口大小
            setLocation(50,50);             // 窗口位置
            setVisible(true);                     // 控制窗口的显隐
        }
    
        // 入口
        public static void main(String[] args)
        {
            BallGame game = new BallGame();
            game.launchframe();
        }
    
    }
    
  2. 运行结果:

  3. 注意,有的时候窗口里的图片加载不出来,如下图:

    遇到这种情况可以先将画出的窗口最小化,然后再从任务栏中把窗口打开,这样图片就加载出来了。

四、小球运动
  1. 代码:

    // 导入包
    import java.awt.*;
    import javax.swing.*;
    
    // 定义 BallGame 类并继承 javax.swing.* 中的窗口类
    public class BallGame extends Jframe {
    
        // 引入图片
        Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
        Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
    
        // 定义小球的坐标
        double x = 100;
        double y = 250;
    
        // 定义小球方向
        boolean right = true;
    
        // 画窗口
        public void paint(Graphics g)
        {
            System.out.println(x);
            g.drawImage(desk,0,0,null);         		// 先画桌面,桌面在底层
            g.drawImage(ball,(int)x,(int)y,null);     	// 后画球,球在桌面上
    
            if(right) x += 15; else x -= 15;
            if(x > 780) right = false;
            if(x < 36) right = true;
    
        }
    
        // 加载窗口
        void launchframe()
        {
            setSize(856,500);        // 窗口大小
            setLocation(50,50);		// 窗口位置
            setVisible(true);		// 控制窗口的显隐
    
            while(true)
            {
                repaint();
                try {
                    Thread.sleep(40);       // 40ms
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        // 入口
        public static void main(String[] args)
        {
            BallGame game = new BallGame();
            game.launchframe();
        }
    
    }
    
  2. 运行结果:

五、任意角度
  1. 代码:

    // 导入包
    import java.awt.*;
    import javax.swing.*;
    
    // 定义 BallGame 类并继承 javax.swing.* 中的窗口类
    public class BallGame extends Jframe {
    
        // 引入图片
        Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
        Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
    
        // 定义小球的坐标
        double x = 80;
        double y = 250;
        double maxX = 791;
        double maxY = 430;
        double minX = 35;
        double minY = 65;
        // 定义弧度 60°角
        double degree = 3.14 / 3;
    
        
    
        // 画窗口
        public void paint(Graphics g)
        {
            g.drawImage(desk,0,0,null);         // 先画桌面,桌面在底层
            g.drawImage(ball,(int)x,(int)y,null);     // 后画球,球在桌面上
    
            x += 10 * Math.cos(degree);
            y += 10 * Math.sin(degree);
            if(y > maxY || y < minY) degree = -degree;
            if(x > maxX || x < minX) degree = 3.14 - degree;
    
        }
    
        // 加载窗口
        void launchframe()
        {
            setSize(856,500);        // 窗口大小
            setLocation(50,50);             // 窗口位置
            setVisible(true);                     // 控制窗口的显隐
    
            while(true)
            {
                repaint();
                try {
                    Thread.sleep(40);       // 40ms
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        // 入口
        public static void main(String[] args)
        {
            BallGame game = new BallGame();
            game.launchframe();
        }
    
    }
    
  2. 运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号