java台球编程_Java实现简单台球游戏

Java实现简单台球桌问题,供大家参考,详细内容如下

需求:

使小球可以在桌面上移动,移动到桌面边缘将被弹回,显示小区的移动

素材:

小球照片

20201108013136119548.png

桌球照片

20201108013137119549.jpg

程序源码:

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

}

}

运行效果

20201108013137119550.jpg

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持乐购源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值