2014-11-08 65 views
-2

我的比賽是有3個目標和一個球。用戶將輸入一個移動球的程度,以便擊中其中一個目標。我所希望的是有一個新的屏幕彈出「你贏了!」如果用戶擊中其中一個目標。如何在用戶贏得遊戲時彈出新屏幕?

這裏是我的屏幕類哪裏會得出(有沒有3所示的其他類):

import javax.swing.JPanel; 
import java.awt.Graphics; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.image.BufferedImage; 


public class Screen extends JPanel 
{ 
    private BufferedImage buffered; 
    private Ball b1; 
    private Target t1; 
    private Target t2; 
    private Target t3; 

    public Screen() 
    { 
      b1 = new Ball(130,340); 
     t1 = new Target(300,120); 
      t2 = new Target(600,300); 
     t3 = new Target(400,400); 
    } 

    public Dimension getPreferredSize() 
    { 
     //Sets the size of the panel 
     return new Dimension(800,600); 
    } 

    public void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 

     Color rough = new Color(0,130,33); 
     Color green = new Color(107,204,4); 

     //Create Buffered 
     if(buffered == null) 
     { 
      buffered = (BufferedImage)(createImage(getWidth(), getHeight())); 
     } 

     //Create a temporary graphics buffered to draw 
     Graphics gBuff = buffered.createGraphics(); 

     //Clear everything 
     //This draws the white box 
     gBuff.setColor(rough); 
     gBuff.fillRect(0, 0, 800, 600); 

     gBuff.setColor(green); 
     gBuff.fillOval(20,20,650,560); 
     gBuff.fillOval(240,50,530,540); 

     b1.drawMe(gBuff); 
     t1.drawMe(gBuff); 
     t2.drawMe(gBuff); 
     t3.drawMe(gBuff); 

     //draw the buffered image 
     g.drawImage(buffered, 0, 0, null); 
    } 

    public void setVariables(int degreeInput) 
    { 
     b1.setDegrees(degreeInput); 
    } 

    public void animate() 
    { 
     int count = 0; 
     while(count < 100000) 
     { 
      //wait for .01 second 
      try { 
       Thread.sleep(10); 
      } catch(InterruptedException ex) { 
       Thread.currentThread().interrupt(); 
      } 

      b1.move(); 

      if(t1.checkCollision(b1.getX(), b1.getY(), b1.getWidth(), b1.getHeight())) 
      { 
       break; 
      } 
      if(t2.checkCollision(b1.getX(), b1.getY(), b1.getWidth(), b1.getHeight())) 
      { 
       break; 
      } 
      if(t3.checkCollision(b1.getX(), b1.getY(), b1.getWidth(), b1.getHeight())) 
      { 
       break; 
      } 
      count++; 
      repaint(); 
     } 
    } 
} 

而且因爲我是一個初學者,如果答案可能是簡單的形式來會是大!

+1

問題在哪裏,您到目前爲止嘗試了什麼? – mattias 2014-11-08 23:10:19

+0

沒有問題,我只是不確定如何製作一個新窗口 – pman 2014-11-09 09:16:34

回答

1

你的意思是你想要某種類型的彈出?例如:

JOptionPane.showMessageDialog(frame, "You Win!", "Winner winner chicken dinner", JOptionPane.PLAIN_MESSAGE); 
+0

在不同的圖形窗口中是這樣的 – pman 2014-11-09 09:15:36

相關問題