Java 桌球小游戏
一、创建项目
创建一个 demo0 项目。
在项目根目录中创建 image 文件夹,并把下面两张图片拷贝到 image 目录中。
图 1
图 2
在 src 中创建 BallGame 类。
目录结构如下:
二、出现窗口
代码:
// 导入包 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();}}
运行结果:
三、加载图片
代码:
// 导入包 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();}}
运行结果:
注意,有的时候窗口里的图片加载不出来,如下图:
遇到这种情况可以先将画出的窗口最小化,然后再从任务栏中把窗口打开,这样图片就加载出来了。
四、小球运动
代码:
// 导入包 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();}}
运行结果:
五、任意角度
代码:
// 导入包 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();}}
运行结果:
Java 桌球小游戏相关推荐
- [Java]桌球小游戏(小球任意角度碰撞)
import javax.swing.*; import java.awt.*; public class BallGame extends JFrame {/*继承swing里面的窗口类*///加载 ...
- Java桌球小游戏(兴趣制作)
桌球小游戏 两张图片放在src的同级目录下 版本一.出现窗口 package cn.xjion.game; /*** 出现窗口* @author xjion**/ import java.awt.*; ...
- 30分钟java桌球小游戏_30分钟完成桌球小游戏项目
桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回. 练手项目加速度控制 //添加速度控制的台球游戏 import java.awt.*; import javax.swing.*; public ...
- java桌球小游戏源代码,下载量瞬秒百万
蚂蚁花呗第一次技术面(60min): Java容器有哪些?哪些是同步容器,哪些是并发容器? ArrayList和LinkedList的插入和访问的时间复杂度? java反射原理, 注解原理? 说说一致 ...
- Java桌球小游戏1
版本三.使小球动起来 package cn.xjion.game; /** * 水平滚动 * @author xjion * */ import java.awt.*; import javax.sw ...
- 30分钟java桌球小游戏_Java桌球小游戏(兴趣制作)
两张图片放在src的同级目录下 版本一.出现窗口 package cn.xjion.game; /** * 出现窗口 * @author xjion * */ import java.awt.*; i ...
- java桌球教程视频,Java桌球小游戏1 - osc_wov79fj7的个人空间 - OSCHINA - 中文开源技术交流社区...
版本三.使小球动起来 package cn.xjion.game; /** * 水平滚动 * @author xjion * */ import java.awt.*; import javax.sw ...
- java台球游戏设计原理_java实现一个桌球小游戏
本文实例为大家分享了java实现桌球小游戏的具体代码,供大家参考,具体内容如下 在ecplise中新建一个JAVA项目 建立四个class分别对应游戏登陆界面,游戏界面,数据库操作,和一个开始类 代码 ...
- 【Java速成教学】桌球游戏项目_教你用最短的时间开发桌球小游戏_Java初学者项目
Java小游戏项目回归!今天给大家带来的是桌球游戏~ 本课程面向刚入门或者有一定Java基础的人群,帮助学员理解面向对象编程,并将基础知识进行实际应用,最终目标为开发出一个功能强大的桌球游戏.[Jav ...
- JAVA制作小游戏———简易的桌球
要求: 即使看不太懂,也要照着敲如下游戏代码,至少 5 遍. 要求所有字符和源文件一致. 如果报异常,请细心看所在行和老师代码有何区别.现阶段不需要理解代码的语法功能,只 要按照代码结构输入代码,能够 ...
最新文章
- python元组用法详解(定义、下表查找、index()、count()、len())
- Zookeeper分布式一致性原理(八):Zookeeper典型应用场景
- 安卓学习 之 Activity(二)
- 【Linux】- 守护进程的启动方法
- edward_mj退役经验帖
- python机器学习2021年6月19日09:35:06
- ubuntu下的常见12个命令---欢迎补充
- hdu1421 搬寝室 DP
- 【脚本语言】一个简易的语言的设计与实现
- iptables常用命令
- Java二分查找算法详解
- linux系统LCD驱动(二):mtk lcd驱动fb_info初始化
- linux各个文件夹,linux各个目录文件夹含义
- 数字孪生的4个最佳实践
- 实现条码枪的无焦点扫码
- 从流水线工人,到谷歌上班的程序媛,一位湖南娄底妹子的励志故事...
- 性别平等进展倒退136年!疫情引发女性经济衰退;阿斯利康与丹纳赫雷度米特、路胜达成合作 | 美通社头条...
- Threejs—BIM管道流向动态效果
- 74hc165并行口转串口芯片学习
- DNS劫持有什么危害?
热门文章
- 在购买太阳眼镜时怎样辨别好坏
- python绘画海贼王_入门级项目实战,Python生成海贼王云图!
- 如何免费拥有一个聊天机器人
- 【报告分享】2021中国瑜伽行业报告-精练(附下载)
- day3-money enhances memory consolidation-but only for boring material
- 11.智能快递柜(用户寄件)
- C语言(素数)[解法]:编写prime(m)判断m是否为素数,当m为素数返回1,否则返回0;
- pcm数据编码成为aac格式文件(可以在酷狗播放)
- 常变量和符号常量的区别?常变量和文字常量的区别?
- C语言打印平行四边形