一、创建项目

  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;/** 经过测试计算洞口坐标:[x,y]* 上左:[35,65]    x 最小值和 y 的最小值* 上中:[413,65]* 上右:[791,65]** 下左:[35,430]* 下中:[413,430]* 下右:[791,430]  x 最大值和 y 的最大值*/// 画窗口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. 运行结果:

Java 桌球小游戏相关推荐

  1. [Java]桌球小游戏(小球任意角度碰撞)

    import javax.swing.*; import java.awt.*; public class BallGame extends JFrame {/*继承swing里面的窗口类*///加载 ...

  2. Java桌球小游戏(兴趣制作)

    桌球小游戏 两张图片放在src的同级目录下 版本一.出现窗口 package cn.xjion.game; /*** 出现窗口* @author xjion**/ import java.awt.*; ...

  3. 30分钟java桌球小游戏_30分钟完成桌球小游戏项目

    桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回. 练手项目加速度控制 //添加速度控制的台球游戏 import java.awt.*; import javax.swing.*; public ...

  4. java桌球小游戏源代码,下载量瞬秒百万

    蚂蚁花呗第一次技术面(60min): Java容器有哪些?哪些是同步容器,哪些是并发容器? ArrayList和LinkedList的插入和访问的时间复杂度? java反射原理, 注解原理? 说说一致 ...

  5. Java桌球小游戏1

    版本三.使小球动起来 package cn.xjion.game; /** * 水平滚动 * @author xjion * */ import java.awt.*; import javax.sw ...

  6. 30分钟java桌球小游戏_Java桌球小游戏(兴趣制作)

    两张图片放在src的同级目录下 版本一.出现窗口 package cn.xjion.game; /** * 出现窗口 * @author xjion * */ import java.awt.*; i ...

  7. java桌球教程视频,Java桌球小游戏1 - osc_wov79fj7的个人空间 - OSCHINA - 中文开源技术交流社区...

    版本三.使小球动起来 package cn.xjion.game; /** * 水平滚动 * @author xjion * */ import java.awt.*; import javax.sw ...

  8. java台球游戏设计原理_java实现一个桌球小游戏

    本文实例为大家分享了java实现桌球小游戏的具体代码,供大家参考,具体内容如下 在ecplise中新建一个JAVA项目 建立四个class分别对应游戏登陆界面,游戏界面,数据库操作,和一个开始类 代码 ...

  9. 【Java速成教学】桌球游戏项目_教你用最短的时间开发桌球小游戏_Java初学者项目

    Java小游戏项目回归!今天给大家带来的是桌球游戏~ 本课程面向刚入门或者有一定Java基础的人群,帮助学员理解面向对象编程,并将基础知识进行实际应用,最终目标为开发出一个功能强大的桌球游戏.[Jav ...

  10. JAVA制作小游戏———简易的桌球

    要求: 即使看不太懂,也要照着敲如下游戏代码,至少 5 遍. 要求所有字符和源文件一致. 如果报异常,请细心看所在行和老师代码有何区别.现阶段不需要理解代码的语法功能,只 要按照代码结构输入代码,能够 ...

最新文章

  1. python元组用法详解(定义、下表查找、index()、count()、len())
  2. Zookeeper分布式一致性原理(八):Zookeeper典型应用场景
  3. 安卓学习 之 Activity(二)
  4. 【Linux】- 守护进程的启动方法
  5. edward_mj退役经验帖
  6. python机器学习2021年6月19日09:35:06
  7. ubuntu下的常见12个命令---欢迎补充
  8. hdu1421 搬寝室 DP
  9. 【脚本语言】一个简易的语言的设计与实现
  10. iptables常用命令
  11. Java二分查找算法详解
  12. linux系统LCD驱动(二):mtk lcd驱动fb_info初始化
  13. linux各个文件夹,linux各个目录文件夹含义
  14. 数字孪生的4个最佳实践
  15. 实现条码枪的无焦点扫码
  16. 从流水线工人,到谷歌上班的程序媛,一位湖南娄底妹子的励志故事...
  17. 性别平等进展倒退136年!疫情引发女性经济衰退;阿斯利康与丹纳赫雷度米特、路胜达成合作 | 美通社头条...
  18. Threejs—BIM管道流向动态效果
  19. 74hc165并行口转串口芯片学习
  20. DNS劫持有什么危害?

热门文章

  1. 在购买太阳眼镜时怎样辨别好坏
  2. python绘画海贼王_入门级项目实战,Python生成海贼王云图!
  3. 如何免费拥有一个聊天机器人
  4. 【报告分享】2021中国瑜伽行业报告-精练(附下载)
  5. day3-money enhances memory consolidation-but only for boring material
  6. 11.智能快递柜(用户寄件)
  7. C语言(素数)[解法]:编写prime(m)判断m是否为素数,当m为素数返回1,否则返回0;
  8. pcm数据编码成为aac格式文件(可以在酷狗播放)
  9. 常变量和符号常量的区别?常变量和文字常量的区别?
  10. C语言打印平行四边形