更新時(shí)間:2022-10-10 10:24:30 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3873次
教大家如何用JAVA寫一個(gè)簡(jiǎn)單的桌球小游戲,實(shí)現(xiàn)的效果是一個(gè)桌球能指定在球臺(tái)內(nèi)滾動(dòng),實(shí)現(xiàn)效果如下:
1.第一步創(chuàng)建窗口,引用兩個(gè)包,后面要繼承它的類
import java.awt.*; import javax.swing.*;
2.然后設(shè)置程序的執(zhí)行入口
//main方法是程序執(zhí)行的入口
public static void main(String[] args) {
BallGame2 game = new BallGame2();
game.launchFrame();
}
3.將窗口加載出來,設(shè)置窗口的重畫時(shí)間
//窗口加載
void launchFrame() {
setSize(856,500); setLocation(500,500); setVisible(true);
//重畫窗口 每40毫秒重畫一次,更新小球位置
while(true) {
repaint();
try {
Thread.sleep(40);//40毫秒
} catch (Exception e) {
e.printStackTrace();
}
}
}
4 .加載兩張圖片出來,一個(gè)是桌球圖片,另一個(gè)是球桌圖片。注意要先加載背景圖片然后再加載小球,不然就會(huì)被遮住的
5.最后就是讓小球動(dòng)起來了,設(shè)置小球的移動(dòng)角度,判斷小球是否碰撞到邊界,讓小球碰到邊界時(shí)反彈,這樣就實(shí)現(xiàn)的了桌球小游戲的效果了
//畫窗口方法
public void paint(Graphics g) {
System.out.println("窗口被畫了一次");
g.drawImage(desk,0,0,null);
g.drawImage(ball, (int)x, (int)y,null);
//移動(dòng)角度
x = x + 10 * Math.cos(degree);
y = y + 10 * Math.sin(degree);
//上下邊界碰撞
if(y>500 - 40-30 || y <40 + 40) {
degree = -degree;
}
//左右邊界碰撞
if(x< 40 || x>865 - 40 -30) {
degree = 3.14 - degree;
}
}
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743