導航:首頁 > 編程語言 > java躲避球

java躲避球

發布時間:2023-08-06 18:01:28

『壹』 急求一個java的躲避彈球小游戲的代碼

import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.Timer;
public class PinBall
{
private final int TABLE_WIDTH = 300;//桌面寬度
private final int TABLE_HEIGHT = 400;//桌面高度
private final int RACKET_Y = 340;//球拍的垂直位置
private final int RACKET_HEIGHT = 20;//球拍高度
private final int RACKET_WIDTH = 60;//球拍寬度
private final int BALL_SIZE = 16;//球的大小
private Frame f = new Frame("彈球游戲");//實例化一個窗口
Random rand = new Random();//實例化一個隨機數生成器
private int ySpeed = 10;//小球的縱向運動數度、
private double xyRate = rand.nextDouble() - 0.5;//返回一個-0.5到0.5之間的比率用控制小球運動方向
private int xSpeed = (int)(ySpeed*xyRate*2);//這個橫向速度在-10到10之間,產生左右擺動運動效果
private int ballX = rand.nextInt(200)+20;//小球開始的橫坐標位置,200表示產生0到100之間的隨機數
private int ballY = rand.nextInt(10)+20;//小球開始的縱坐標位置
private int racketX = rand.nextInt(200);//球拍開始時的橫坐標位置
private MyCanvas tableArea = new MyCanvas();//實力化一個畫布工具,集成Canvas類
private String shape = "";//保存需要繪制圖形的字元串屬性
Timer timer;//聲明一個時間變數
private boolean isLose = false;//表示游戲是否結束

public void init()
{
tableArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));//定義畫布大小
f.add(tableArea);//添加畫布到窗口
KeyAdapter keyProcessor = new KeyAdapter()//實例化一個鍵盤監聽事件適配器
{
public void keyPressed(KeyEvent ke)//重寫適配器裡面的按下某鍵盤方法
{
if(ke.getKeyCode()==KeyEvent.VK_LEFT)//按下鍵盤左鍵時
{
if(racketX > 0)//球拍左邊框不能出畫布的左邊框
racketX -=10;//按一左鍵次向左移動10個像素
}
if(ke.getKeyCode()==KeyEvent.VK_RIGHT)//按下鍵盤右鍵時
{
if(racketX < TABLE_WIDTH - RACKET_WIDTH)//球拍右邊框不能出畫布的右邊框
racketX +=10;//按一次右鍵移動向右移動10個像素
}
}
};
f.addKeyListener(keyProcessor);//給窗口添加鍵盤監聽器
tableArea.addKeyListener(keyProcessor);//給畫布添加鍵盤監聽器
ActionListener taskPerformer = new ActionListener()//這里是實例化了一個監聽介面,這個介面裡面只有一個方法
{
public void actionPerformed(ActionEvent evt)//重寫這個介面裡面的方法,判斷小球的位置
{
if(ballX<=0 || ballX>=TABLE_WIDTH-BALL_SIZE)//保證小球橫向上在畫布之內運動
{
xSpeed = -xSpeed;//觸發反方向運動
}
if(ballY>=RACKET_Y-BALL_SIZE&&(ballX<racketX||ballX>racketX+RACKET_WIDTH))//出了球拍的可擊打范圍
{
timer.stop();//停止對監聽器的觸發
isLose=true;//將標志isLose變數置為true
tableArea.repaint();//調用畫布的重繪方法
}
else if(ballY<=0||(ballY>=RACKET_Y-BALL_SIZE&&ballY>racketX&&ballX<=racketX+RACKET_WIDTH))//小球在球拍之內,而其到達球拍的高度
{
ySpeed=-ySpeed;//上下方向改變,小球反彈
}
ballY+=ySpeed;//小球的坐標在縱向上增加
ballX+=xSpeed;//小球的坐標在橫向上的增加
tableArea.repaint();//調用畫布的重繪方法3
}
};
timer = new Timer(100,taskPerformer);//每隔0.1秒運行一次監聽器
timer.start();//計時器開始運行
f.addWindowListener(new MyListener());//關閉窗口事件
f.pack();//設置窗口最佳大小
f.setVisible(true);//顯示窗口
}
class MyListener extends WindowAdapter//關閉窗口的類
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)//程序入口
{
new PinBall().init();//調用PinBall類裡面的init()方法
}
class MyCanvas extends Canvas//建一個集成Canvas類的類
{
public void paint(Graphics g)//重寫父類的繪圖方法
{
if(isLose)//如果isLose為真,則在畫布里列印「游戲已結束」
{
g.setColor(new Color(255,0,0));//當前顏色
g.setFont(new Font("黑體",Font.BOLD,30));//字體名稱,樣式,大小
g.drawString("游戲已結束!",50,200);//按坐標繪制文字圖形
}
else//負責
{
g.setColor(new Color(240,240,80));//當前顏色
g.fillOval(ballX,ballY,BALL_SIZE,BALL_SIZE);//填充顏色,根據坐標和長寬填充圓形
g.setColor(new Color(80,80,200));//當前顏色
g.fillRect(racketX,RACKET_Y,RACKET_WIDTH,RACKET_HEIGHT);//填充顏色,根據坐標和長寬填充矩形
}
}
}
}

『貳』 用java解決:求代碼 一球從h米高度自由下落,每次落地後又反彈回原來高度的一半;在落下,求它

//設置經過的次數(輸入合法的數據)
int k = 2;
//設定為專100高
double h = 100;
//經過的路程屬
double sum = 0;
//次數
int count = 0;
while(true){
count++;
if(k!=count){
//下落和彈起都要計算
sum = sum + h +h/2;
h = h/2;
}else{
//到達指定次數
//計算下落即可
sum = sum + h;
h = h/2;
break;
}
}
System.out.println("共經過了"+sum+"米,第"+k+"次彈起"+h+"米");

『叄』 java.一球從100米高度自由落下.每次落地後反跳回原高度的一半


publicstaticvoidmain(String[]ages){

doublen=0;

doublex=100;

intz=0;

System.out.print("請輸入需求得的第幾次:");

Scannersc=newScanner(System.in);

while(true){//這個循環用於確定輸入的是數字版

try{

Strings=sc.next();

z=Integer.valueOf(s);

break;

}catch(Exceptione){

System.out.print("你輸入的不為數字,請重新權輸入:");

}

}

for(intm=1;m<(z+1);m++){

n=n+x*2;

x=x/2;

if(m==z){

System.out.println("第"+m+"次反彈高度為:"+x);

System.out.println("第"+m+"次落地共經過為:"+(n-100));

}

}

}

//這個用來求第幾次

『肆』 JAVA實現,在屏幕內一個小球隨機移動

你只需要一個隨機數、 然後 畫一個球形 讓它隨隨機數動就是了。用一個線程式控制制 時間 就可以了 我這里沒有MIDlet。

閱讀全文

與java躲避球相關的資料

熱點內容
猥瑣貓表情教程 瀏覽:599
android音頻文件格式 瀏覽:458
漫畫臉app哪裡可以下載 瀏覽:959
購買歡樂升級歡樂豆 瀏覽:282
學習智能機器人用什麼編程最好 瀏覽:655
蘋果手機如何管控app 瀏覽:633
mn文件夾 瀏覽:590
安卓平板通用刷機包下載 瀏覽:751
安卓獲取內部存儲路徑 瀏覽:880
寫代碼兩台顯示器 瀏覽:327
unitypackage壓縮文件 瀏覽:493
奕心安卓 瀏覽:563
使用土地的有關證明文件包含哪些 瀏覽:493
數據標注哪裡可以接 瀏覽:482
在家自學編程下什麼學 瀏覽:705
最近很火的app軟體是什麼軟體 瀏覽:862
ai文字工具 瀏覽:157
蘭博玩游戲路徑怎麼選擇正確文件 瀏覽:972
淘寶直通車恢復老版本 瀏覽:510
播放草莓的圖片我都文件 瀏覽:55

友情鏈接