java台球游戏设计原理_Java实现简单台球游戏
Java實(shí)現(xiàn)簡單臺球桌問題,供大家參考,具體內(nèi)容如下
需求:
使小球可以在桌面上移動,移動到桌面邊緣將被彈回,顯示小區(qū)的移動
素材:
小球照片
桌球照片
程序源代碼:
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()方法會調(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)容為小球水平方向移動
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)小球遇到桌面的上下界面時,發(fā)生反轉(zhuǎn),
if(y>500-40-30||y<40+40) //(40+40)一個表示標(biāo)題欄,一個時球桌寬
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í)有所幫助
您可能感興趣的文章:
總結(jié)
以上是生活随笔為你收集整理的java台球游戏设计原理_Java实现简单台球游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决MAC系统字体发虚,更换默认字体为微
- 下一篇: 经纬度度分秒互转