Java实现简单台球游戏
作者:xujinshan361 发布时间:2022-06-28 23:55:59
标签:java,台球,游戏
Java实现简单台球桌问题,供大家参考,具体内容如下
需求:
使小球可以在桌面上移动,移动到桌面边缘将被弹回,显示小区的移动
素材:
小球照片
桌球照片
程序源代码:
package 桌球游戏;
import java.awt.*;
import 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=100;//小球的纵坐标
/*boolean right =true; //方向*/
double degree=3.14/3; //弧度表示,60°
//窗口加载
void launchFrame() {
setSize(856,500); //参数和桌面有关
setLocation(400,400);
setVisible(true); //设置窗口可见
//重画窗口,每秒画25次
while(true) {
repaint();//repaint()方法会调用paint()方法
try {
Thread.sleep(20);//40ms,
}catch(Exception e) {
e.printStackTrace();
}
}
}
//画窗口方法
public void paint(Graphics g){
System.out.println("窗口被画一次!");
g.drawImage(desk,0,0,null);
g.drawImage(ball, (int)x,(int)y, null);
/* //注释内容为小球水平方向移动
x=x+1;
if(right) {
x+=10;
}else {
x-=10;
}
if(x>856-40-30) //30小球的直径,40球桌边框的
right=false;
if(x<40)
right=true;
//y=y+2;
* */
x=x+10*Math.cos(degree);
y=y+10*Math.sin(degree);
//当小球遇到桌面的上下界面时,发生反转,
if(y>500-40-30||y<40+40) //(40+40)一个表示标题栏,一个时球桌宽
degree=-degree;
if(x<0+40||x>856-40-30)
degree =3.14-degree;
}
//main 方法执行入口
public static void main(String []args) {
System.out.println("欢迎来到小球游戏!");
BallGame game=new BallGame();
game.launchFrame();
}
}
运行效果
来源:https://blog.csdn.net/xu_jin_shan/article/details/85237667


猜你喜欢
- 在这里,我们将用到finish(),简单介绍一下它的使用:finish()官方解析:Call this when your activity
- 本文实例讲述了Android实现将一个Activity设置成窗口样式的方法。分享给大家供大家参考,具体如下:1.在res/value文件夹下
- 本文实例为大家分享了ExpandableListView二级分栏效果的具体代码,供大家参考,具体内容如下对ExpandableListVie
- 背景在我做WinForm开发的过程中,经常会遇到耗时操作或阻塞操作。他们会引发软件的卡顿甚至假死,严重影响软件的使用。因此,这类耗时或阻塞的
- 前言InterruptedException异常可能没你想的那么简单!当我们在调用Java对象的wait()方法或者线程的sleep()方法
- 前言这几天学习谷粒商城又再次的回顾了一次SpringCache,之前在学习谷粒学院的时候其实已经学习了一次了!!!这里就对自己学过来的内容进
- 之前接了需求要让视频播放时可以像优酷视频那样在悬浮窗里播放,并且悬浮窗和主播放页面之间要实现无缝切换,项目中使用的是自封装的ijkplaye
- 在编程的时候或者写网络爬虫的时候,经常需要对html进行解析,抽取其中有用的数据。一款好的工具是特别有用的,能提供很多的帮助,网上有很多这样
- 调用方法:/** * 点击量/月(年)Callable */ public void yearlyClickCallable() { //
- 本文实例为大家分享了RecyclerView实现侧滑拖拽功能的具体代码,供大家参考,具体内容如下准备ItemDragListenerpack
- 接口介绍:该请求用于检测和识别图片中的品牌LOGO信息。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中LOGO的名称、位置和置
- 本文分析了Android中EditText光标在4.0中的bug及解决方法。分享给大家供大家参考,具体如下:一、问题:不知道为什么,我的Ed
- 一、什么是跨域1.1、为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心
- 本文实例讲述了C#提取网页中超链接link和text部分的方法。分享给大家供大家参考,具体如下:string s = "..&qu
- 背景最近再做一个需求,就是对站点的一些事件进行埋点,说白了就是记录用户的访问行为。那么这些数据怎么保存呢,人家点一下保存一下?显然不合适,肯
- 本文实例讲述了Android实现拍照上传功能的方法。分享给大家供大家参考,具体如下:1、LoginWindow.java --登录窗口pac
- 自定义Starter命名规则注意artifactId的命名规则,Spring官方Starter通常命名为spring-boot-starte
- C#时间/日期格式大全,C#时间/日期函数大全有时候我们要对时间进行转换,达到不同的显示效果默认格式为:2005-6-6 14:33:34如
- 要理解实现原理,必须把线程池的几个参数彻底搞懂,不要死记硬背一、线程池参数1、corePoolSize(必填):核心线程数。2、maximu
- 一、项目运行环境配置:Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe