import?java.util.Scanner;
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、克山網(wǎng)站維護(hù)、網(wǎng)站推廣。
/**
*?計(jì)算球的體積
*?
*?@author?young
*
*/
public?class?Volume?{
public?static?void?main(String[]?args)?{
System.out.print("請(qǐng)輸入r:");
Scanner?reader?=?new?Scanner(System.in);
double?r?=?0,?v?=?0;
r?=?reader.nextDouble();
v?=?4?*?3.14159?/?3?*?r?*?r?*?r;
System.out.println("球體積為:"?+?String.format("%.2f",?v));
}
}
;
要制造那種效果只需要大約 30 行 Java 代碼:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
class RollingBall extends JPanel {
Ellipse2D.Float ball = new Ellipse2D.Float( -100, 100, 50, 50 );
public void paintComponent( Graphics g ) {
super.paintComponent( g );
Graphics2D g2 = ( Graphics2D ) g;
// Draw the ball
g2.fill( ball );
// Draw the rotating ellipse by skewing the Device Space
double angdeg =?????// One rotation per ball's travelling over its perimeter
ball.x++ % ( Math.PI * ball.width ) / ( Math.PI * ball.width ) * 360;
g2.rotate( Math.toRadians( angdeg ), ball.getCenterX( ), ball.getCenterY( ) );
g2.scale( .5, 1 );
g2.translate( ball.getCenterX( ), 0 );
g2.setColor( Color.gray );
g2.fill( ball );
}
public void roll( ) throws Exception {
while( true ) {
repaint( );
Thread.sleep( 8 );
}
}
public static void main( String[ ] args ) throws Exception {
JFrame f = new JFrame( );
RollingBall rb = new RollingBall( );
f.setSize( 999, 185 );
f.getContentPane( ).add( rb );
f.setVisible( true );
rb.roll( );
}
}
你說的是瓊脂吧,易語(yǔ)言是不可能實(shí)現(xiàn)的,因?yàn)樘恕?/p>
瓊脂是PHP實(shí)現(xiàn)的,java版的也有了,你可以用c++來做,想做個(gè)引擎再實(shí)現(xiàn)功能
如果要在 Java 的線程小球碰撞游戲中制作結(jié)束畫面,需要實(shí)現(xiàn)以下步驟:
在程序中創(chuàng)建一個(gè)畫布,用于繪制結(jié)束畫面。
在游戲結(jié)束時(shí),使用畫布的 drawString 方法在畫布上繪制文字,表示游戲結(jié)束。
使用畫布的 repaint 方法刷新畫布,讓結(jié)束畫面顯示在屏幕上。
例如,可以這樣實(shí)現(xiàn)結(jié)束畫面:
// 創(chuàng)建畫布
Canvas canvas = new Canvas();
// 繪制文字
canvas.drawString("Game Over", 100, 100);
// 刷新畫布
canvas.repaint();
在這里,我們創(chuàng)建了一個(gè)畫布,并在畫布上繪制了文字,表示游戲結(jié)束。最后,我們使用了 repaint 方法,讓結(jié)束畫面顯示在屏幕上。
此外,如果需要在結(jié)束畫面上顯示更多的信息,比如游戲得分、玩家名字等,也可以使用類似的方法來實(shí)現(xiàn)。例如,可以這樣顯示游戲得分:
// 繪制文字
canvas.drawString("Game Over", 100, 100);
canvas.drawString("Score: " + score, 100, 120);
// 刷新畫布
canvas.repaint();
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("彈球游戲");//實(shí)例化一個(gè)窗口
Random rand = new Random();//實(shí)例化一個(gè)隨機(jī)數(shù)生成器
private int ySpeed = 10;//小球的縱向運(yùn)動(dòng)數(shù)度、
private double xyRate = rand.nextDouble() - 0.5;//返回一個(gè)-0.5到0.5之間的比率用控制小球運(yùn)動(dòng)方向
private int xSpeed = (int)(ySpeed*xyRate*2);//這個(gè)橫向速度在-10到10之間,產(chǎn)生左右擺動(dòng)運(yùn)動(dòng)效果
private int ballX = rand.nextInt(200)+20;//小球開始的橫坐標(biāo)位置,200表示產(chǎn)生0到100之間的隨機(jī)數(shù)
private int ballY = rand.nextInt(10)+20;//小球開始的縱坐標(biāo)位置
private int racketX = rand.nextInt(200);//球拍開始時(shí)的橫坐標(biāo)位置
private MyCanvas tableArea = new MyCanvas();//實(shí)力化一個(gè)畫布工具,集成Canvas類
private String shape = "";//保存需要繪制圖形的字符串屬性
Timer timer;//聲明一個(gè)時(shí)間變量
private boolean isLose = false;//表示游戲是否結(jié)束
public void init()
{
tableArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));//定義畫布大小
f.add(tableArea);//添加畫布到窗口
KeyAdapter keyProcessor = new KeyAdapter()//實(shí)例化一個(gè)鍵盤監(jiān)聽事件適配器
{
public void keyPressed(KeyEvent ke)//重寫適配器里面的按下某鍵盤方法
{
if(ke.getKeyCode()==KeyEvent.VK_LEFT)//按下鍵盤左鍵時(shí)
{
if(racketX 0)//球拍左邊框不能出畫布的左邊框
racketX -=10;//按一左鍵次向左移動(dòng)10個(gè)像素
}
if(ke.getKeyCode()==KeyEvent.VK_RIGHT)//按下鍵盤右鍵時(shí)
{
if(racketX TABLE_WIDTH - RACKET_WIDTH)//球拍右邊框不能出畫布的右邊框
racketX +=10;//按一次右鍵移動(dòng)向右移動(dòng)10個(gè)像素
}
}
};
f.addKeyListener(keyProcessor);//給窗口添加鍵盤監(jiān)聽器
tableArea.addKeyListener(keyProcessor);//給畫布添加鍵盤監(jiān)聽器
ActionListener taskPerformer = new ActionListener()//這里是實(shí)例化了一個(gè)監(jiān)聽接口,這個(gè)接口里面只有一個(gè)方法
{
public void actionPerformed(ActionEvent evt)//重寫這個(gè)接口里面的方法,判斷小球的位置
{
if(ballX=0 || ballX=TABLE_WIDTH-BALL_SIZE)//保證小球橫向上在畫布之內(nèi)運(yùn)動(dòng)
{
xSpeed = -xSpeed;//觸發(fā)反方向運(yùn)動(dòng)
}
if(ballY=RACKET_Y-BALL_SIZE(ballXracketX||ballXracketX+RACKET_WIDTH))//出了球拍的可擊打范圍
{
timer.stop();//停止對(duì)監(jiān)聽器的觸發(fā)
isLose=true;//將標(biāo)志isLose變量置為true
tableArea.repaint();//調(diào)用畫布的重繪方法
}
else if(ballY=0||(ballY=RACKET_Y-BALL_SIZEballYracketXballX=racketX+RACKET_WIDTH))//小球在球拍之內(nèi),而其到達(dá)球拍的高度
{
ySpeed=-ySpeed;//上下方向改變,小球反彈
}
ballY+=ySpeed;//小球的坐標(biāo)在縱向上增加
ballX+=xSpeed;//小球的坐標(biāo)在橫向上的增加
tableArea.repaint();//調(diào)用畫布的重繪方法3
}
};
timer = new Timer(100,taskPerformer);//每隔0.1秒運(yùn)行一次監(jiān)聽器
timer.start();//計(jì)時(shí)器開始運(yùn)行
f.addWindowListener(new MyListener());//關(guān)閉窗口事件
f.pack();//設(shè)置窗口最佳大小
f.setVisible(true);//顯示窗口
}
class MyListener extends WindowAdapter//關(guān)閉窗口的類
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)//程序入口
{
new PinBall().init();//調(diào)用PinBall類里面的init()方法
}
class MyCanvas extends Canvas//建一個(gè)集成Canvas類的類
{
public void paint(Graphics g)//重寫父類的繪圖方法
{
if(isLose)//如果isLose為真,則在畫布里打印“游戲已結(jié)束”
{
g.setColor(new Color(255,0,0));//當(dāng)前顏色
g.setFont(new Font("黑體",Font.BOLD,30));//字體名稱,樣式,大小
g.drawString("游戲已結(jié)束!",50,200);//按坐標(biāo)繪制文字圖形
}
else//負(fù)責(zé)
{
g.setColor(new Color(240,240,80));//當(dāng)前顏色
g.fillOval(ballX,ballY,BALL_SIZE,BALL_SIZE);//填充顏色,根據(jù)坐標(biāo)和長(zhǎng)寬填充圓形
g.setColor(new Color(80,80,200));//當(dāng)前顏色
g.fillRect(racketX,RACKET_Y,RACKET_WIDTH,RACKET_HEIGHT);//填充顏色,根據(jù)坐標(biāo)和長(zhǎng)寬填充矩形
}
}
}
}
import java.util.Random;
import java.util.Scanner;
public class DoubleBalls {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("是否機(jī)選一組雙色球號(hào)碼?(Y/N)");
Scanner input = new Scanner(System.in);
char a = input.next().charAt(0); // 輸入一個(gè)char字符,0位即是第一位
if (a == 'Y' || a == 'y') {
Random suiji = new Random(); // 創(chuàng)建suiji方法
int blue = suiji.nextInt(16);//從0到16中選一個(gè)數(shù)字個(gè)藍(lán)球
while(blue==0){
blue=suiji.nextInt(16);
}//如果選到了0,再選一次給blue
int red[] = new int[6];// 用一個(gè)6個(gè)元素的數(shù)組裝紅球
for (int i = 0; i 6; i++) {
red[i] = suiji.nextInt(33); // 隨機(jī)分配0到33的整數(shù)
if (red[i] == 0) {i--;}
if (i == -1) {i = 0;}
for (int j = 0; j i; j++) {
while (red[i] == red[j]) {i--;}// 發(fā)現(xiàn)相同的從新回去生成一個(gè)
}
}
System.out.print("紅球:");
for (int k = 0; k red.length; k++) {
System.out.print(red[k] + " ");// 輸出數(shù)組red
}
System.out.print("藍(lán)球:"+blue);
} else
System.out.println("fuck you~");
}
}
應(yīng)該可以了,可以產(chǎn)生一組。。。如果樓主你中頭獎(jiǎng)了,送我套房好了哈^0^
當(dāng)前題目:大球吃小球java源代碼,java大球吃小球項(xiàng)目總結(jié)
本文鏈接:http://jinyejixie.com/article14/hsigge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)