Java實(shí)現(xiàn)簡單臺(tái)球游戲
Java實(shí)現(xiàn)簡單臺(tái)球桌問題,供大家參考,具體內(nèi)容如下
需求:
使小球可以在桌面上移動(dòng),移動(dòng)到桌面邊緣將被彈回,顯示小區(qū)的移動(dòng)
素材:
小球照片

桌球照片

程序源代碼:
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;//小球的橫坐標(biāo)
double y=100;//小球的縱坐標(biāo)
/*boolean right =true; //方向*/
double degree=3.14/3; //弧度表示,60°
//窗口加載
void launchFrame() {
setSize(856,500); //參數(shù)和桌面有關(guān)
setLocation(400,400);
setVisible(true); //設(shè)置窗口可見
//重畫窗口,每秒畫25次
while(true) {
repaint();//repaint()方法會(huì)調(diào)用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);
/* //注釋內(nèi)容為小球水平方向移動(dòng)
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);
//當(dāng)小球遇到桌面的上下界面時(shí),發(fā)生反轉(zhuǎn),
if(y>500-40-30||y<40+40) //(40+40)一個(gè)表示標(biāo)題欄,一個(gè)時(shí)球桌寬
degree=-degree;
if(x<0+40||x>856-40-30)
degree =3.14-degree;
}
//main 方法執(zhí)行入口
public static void main(String []args) {
System.out.println("歡迎來到小球游戲!");
BallGame game=new BallGame();
game.launchFrame();
}
}
運(yùn)行效果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot @JsonSerialize的使用講解
這篇文章主要介紹了springboot @JsonSerialize的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
關(guān)于動(dòng)態(tài)參數(shù)使用@PathVariable的解析
這篇文章主要介紹了關(guān)于動(dòng)態(tài)參數(shù)使用@PathVariable的解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
詳解SpringMVC注解版前臺(tái)向后臺(tái)傳值的兩種方式
本篇文章主要介紹了詳解SpringMVC注解版前臺(tái)向后臺(tái)傳值的兩種方式,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04
解決RestTemplate加@Autowired注入不了的問題
這篇文章主要介紹了解決RestTemplate加@Autowired注入不了的問題,具有很好的參考價(jià)值,希望對大家有所幫助。2021-08-08
Spring Boot JPA如何把ORM統(tǒng)一起來
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 規(guī)范的基礎(chǔ)上封裝的一套JPA應(yīng)用框架,可使開發(fā)者用極簡的代碼即可實(shí)現(xiàn)對數(shù)據(jù)的訪問和操作,本文給大家詳細(xì)介紹了Spring Boot JPA如何把ORM統(tǒng)一起來,感興趣的朋友一起看看吧2018-04-04
Java使用synchronized修飾方法來同步線程的實(shí)例演示
synchronized下的方法控制多線程程序中的線程同步非常方便,這里就來看一下Java使用synchronized修飾方法來同步線程的實(shí)例演示,需要的朋友可以參考下2016-06-06
MyBatis Oracle 自增序列的實(shí)現(xiàn)方法
這篇文章給大家分享MyBatis Oracle 自增序列的實(shí)現(xiàn)方法及mybatis配置oracle的主鍵自增長的方法,非常不錯(cuò)具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-11-11

