最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)桌球小游戲

 更新時(shí)間:2019年07月13日 09:51:03   作者:君丶Xjion  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)桌球小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)桌球小游戲的具體代碼,供大家參考,具體內(nèi)容如下

桌球小游戲

兩張圖片放在src的同級(jí)目錄下

版本一、出現(xiàn)窗口

package cn.xjion.game;
/**
 * 出現(xiàn)窗口
 * @author xjion
 *
 */
import java.awt.*;
import javax.swing.*;
//繼承窗口類(lèi)
public class BallGame extends JFrame{
// 窗口加載的方法
 void launchFrame(){
// 窗口的大小,寬高
 setSize(300,300);
// 窗口的位置,距離窗口左上角的位置
 setLocation(400,200);
// 窗口可見(jiàn)
 setVisible(true);
 }
// main方法,執(zhí)行入口
 public static void main(String[] args) {
// 新建對(duì)象
 BallGame bg = new BallGame();
// 調(diào)用方法
 bg.launchFrame();
 }
}

版本二、加載圖

這兒的加載圖片有個(gè)緩存問(wèn)題,需要最小化窗口再打開(kāi)

package cn.xjion.game;
/**
 * 加載圖片
 * @author xjion
 *
 */
import java.awt.*;
import javax.swing.*;
//繼承窗口類(lèi)
public class BallGame extends JFrame{
// 創(chuàng)建兩個(gè)圖片的對(duì)象,代表兩個(gè)圖片
 Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
 Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
// 畫(huà)窗口的方法
 public void paint(Graphics g){
// 畫(huà)桌面
 g.drawImage(desk, 0, 0, null);
// 畫(huà)ball對(duì)象,坐標(biāo)100,100
 g.drawImage(ball, 100, 100, null);
 }
 
// 窗口加載的方法
 void launchFrame(){
// 窗口的大小,寬高
 setSize(856,500);
// 窗口的位置,距離窗口左上角的位置
 setLocation(50,50);
// 窗口可見(jiàn)
 setVisible(true);
 }
// main方法,執(zhí)行入口
 public static void main(String[] args) {
// 新建對(duì)象
 BallGame bg = new BallGame();
// 調(diào)用方法
 bg.launchFrame();
 }
}

版本三、使小球動(dòng)起來(lái)

package cn.xjion.game;
/**
 * 水平滾動(dòng)
 * @author xjion
 *
 */
import java.awt.*;
import javax.swing.*;
//繼承窗口類(lèi)
public class BallGame extends JFrame{
// 創(chuàng)建兩個(gè)圖片的對(duì)象,代表兩個(gè)圖片
 Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
 Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
 
 int x = 100;
 int y = 100;
 boolean right = true;
 
// 畫(huà)窗口的方法
 public void paint(Graphics g){
// 畫(huà)桌面
 g.drawImage(desk, 0, 0, null);
// 畫(huà)ball對(duì)象,坐標(biāo)100,100
 g.drawImage(ball, x, y, null);
// 如果向右走就加10,否則減10
 if (right) {
 x = x + 10;
 }else{
 x = x - 10;
 }
// 當(dāng)球跑到頭了就返回
 if(x>856-40-30){
 right = false;
 }
 if(x<40){
 right = true;
 }
 
 }
// 窗口加載的方法
 void launchFrame(){
// 窗口的大小,寬高
 setSize(856,500);
// 窗口的位置,距離窗口左上角的位置
 setLocation(50,50);
// 窗口可見(jiàn)
 setVisible(true);
 
// 重畫(huà)窗口,無(wú)限重畫(huà)
 while(true){
// 重畫(huà)方法
 repaint();
// try catch拋異常
 try {
// 40ms重畫(huà)一次,1秒25次
 Thread.sleep(40);
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 }
 
// main方法,執(zhí)行入口
 public static void main(String[] args) {
// 新建對(duì)象
 BallGame bg = new BallGame();
// 調(diào)用方法
 bg.launchFrame();
 }
}

版本四、使小球沿任意角度滾動(dòng)

package cn.xjion.game;
/**
 * 任意滾動(dòng)
 * @author xjion
 *
 */
import java.awt.*;
import javax.swing.*;
//繼承窗口類(lèi)
public class BallGame2 extends JFrame{
// 創(chuàng)建兩個(gè)圖片的對(duì)象,代表兩個(gè)圖片
 Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
 Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
// 在窗口上的坐標(biāo)
 double x = 100;
 double y = 100;
 
 double degree = 3.14 / 3;//弧度,60°
 
// 畫(huà)窗口的方法
 public void paint(Graphics g){
// 畫(huà)桌面
 g.drawImage(desk, 0, 0, null);
// 畫(huà)ball對(duì)象,坐標(biāo)100,100
 g.drawImage(ball,(int) x,(int) y, null);
// x和y坐標(biāo)的變化
 x = x + 10*Math.cos(degree);
 y = y + 10*Math.sin(degree);
 
 /*判斷什么時(shí)候碰到邊界回彈*/
// 碰到上下邊界回彈
 if (y>500-40-30 || y<40 + 40) {
 degree = -degree;
 }
// 碰到左右邊界回彈
 if (x>856-40-30 || x<30) {
 degree = 3.14-degree;
 }
 
 }
// 窗口加載的方法
 void launchFrame(){
// 窗口的大小,寬高
 setSize(856,500);
// 窗口的位置,距離窗口左上角的位置
 setLocation(50,50);
// 窗口可見(jiàn)
 setVisible(true);
 
// 重畫(huà)窗口,無(wú)限重畫(huà)
 while(true){
// 重畫(huà)方法
 repaint();
// try catch拋異常
 try {
// 40ms重畫(huà)一次,1秒25次
 Thread.sleep(40);
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 }
 
// main方法,執(zhí)行入口
 public static void main(String[] args) {
// 新建對(duì)象
 BallGame2 bg = new BallGame2();
// 調(diào)用方法
 bg.launchFrame();
 }
}

好了,這個(gè)最為簡(jiǎn)單的桌球游戲就算是完成了,能實(shí)現(xiàn)球的滾動(dòng),如果有興趣的可以再研究研究球桿,輔助線(xiàn),擊球,速度逐漸下降到停止,進(jìn)球及分?jǐn)?shù)的操作,有不對(duì)的地方望大家指出!

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java趣味練習(xí)題之輸出兩個(gè)日期之間的相隔天數(shù)

    Java趣味練習(xí)題之輸出兩個(gè)日期之間的相隔天數(shù)

    本篇文章介紹了我看到的一個(gè)趣味小題目,怎么求得兩個(gè)日期之間相隔的天數(shù),以及解決該題目的過(guò)程及思路,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-10-10
  • spring security自定義登錄頁(yè)面

    spring security自定義登錄頁(yè)面

    在項(xiàng)目中我們肯定不能使用Spring自己生成的登錄頁(yè)面,而要用我們自己的登錄頁(yè)面,下面通過(guò)本文給大家分享spring security自定義登錄頁(yè)面的實(shí)現(xiàn)方法,一起看看吧
    2017-09-09
  • Mybatis如何實(shí)現(xiàn)InsertOrUpdate功能

    Mybatis如何實(shí)現(xiàn)InsertOrUpdate功能

    這篇文章主要介紹了Mybatis如何實(shí)現(xiàn)InsertOrUpdate功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java編碼輔助工具M(jìn)apstruct用法詳解

    Java編碼輔助工具M(jìn)apstruct用法詳解

    這篇文章主要介紹了Java編碼輔助工具M(jìn)apstruct用法詳解,手動(dòng)編碼setter/getter各個(gè)對(duì)應(yīng)屬性,會(huì)顯得臃腫繁瑣。通過(guò)Mapstruct框架可簡(jiǎn)單方便地完成這一工作。,需要的朋友可以參考下
    2019-06-06
  • 深入理解java動(dòng)態(tài)代理機(jī)制

    深入理解java動(dòng)態(tài)代理機(jī)制

    本篇文章主要介紹了深入理解java動(dòng)態(tài)代理機(jī)制,詳細(xì)的介紹動(dòng)態(tài)代理有哪些應(yīng)用場(chǎng)景,什么是動(dòng)態(tài)代理,怎樣使用,它的局限性在什么地方?有興趣的可以了解一下。
    2017-02-02
  • java.sql.SQLException問(wèn)題解決以及注意事項(xiàng)

    java.sql.SQLException問(wèn)題解決以及注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于java.sql.SQLException問(wèn)題解決以及注意事項(xiàng)的相關(guān)資料,這個(gè)問(wèn)題其實(shí)很好解決,文中通過(guò)圖文將解決的辦法介紹的很詳細(xì),需要的朋友可以參考下
    2023-07-07
  • 使用IDEA配置Mybatis-Plus框架圖文詳解

    使用IDEA配置Mybatis-Plus框架圖文詳解

    這篇文章主要介紹了使用IDEA配置Mybatis-Plus框架,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java正則表達(dá)式循環(huán)匹配字符串方式

    Java正則表達(dá)式循環(huán)匹配字符串方式

    這篇文章主要介紹了Java正則表達(dá)式循環(huán)匹配字符串方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 加速spring/springboot應(yīng)用啟動(dòng)速度詳解

    加速spring/springboot應(yīng)用啟動(dòng)速度詳解

    這篇文章主要介紹了加速spring/springboot應(yīng)用啟動(dòng)速度詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Mac配置 maven以及環(huán)境變量設(shè)置方式

    Mac配置 maven以及環(huán)境變量設(shè)置方式

    這篇文章主要介紹了Mac配置 maven以及環(huán)境變量設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論

宜州市| 资阳市| 宁海县| 新宁县| 郯城县| 西宁市| 绥芬河市| 老河口市| 措勤县| 太康县| 信宜市| 堆龙德庆县| 广安市| 奎屯市| 紫阳县| 铁岭县| 拜泉县| 旌德县| 谷城县| 青浦区| 永康市| 政和县| 宜兴市| 德令哈市| 手游| 秦安县| 鹤壁市| 大港区| 红河县| 夏邑县| 依安县| 从江县| 九江县| 财经| 贺州市| 万载县| 新绛县| 安龙县| 巢湖市| 八宿县| 和林格尔县|