亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? breakout.java

?? Breakout game,It was developed by Bluej.If somebody wanna learn Bluej GUI,it is a very useful exampl
?? JAVA
字號:
/**************************************************************
Paddle Game Demo
This code shows how to display blocks, make a ball bounce, and
to control a paddle my moving the mouse.  

@author zxy
@author Eric Roberts (provided original code)
@version October 25, 2007
**************************************************************/

import acm.graphics.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Breakout implements ActionListener, Runnable, MouseMotionListener{

    /** GUI button to serve each ball */
    private JButton serveButton;

    /** JFrame holds the game */
    private JFrame myGUI;
    private int WIDTH = 400;
    private int HEIGHT = 500;
    private int ballWidth =20;
    private int brickWidth = 38;
    private int brickHeight =20;
    private int paddleWidth;
    private int paddleHeight = 10;
    
    private GCanvas canvas;
    private GOval ball;
    private GRect brick;
    private GRect paddle;
    private double dx,dy;
    private int key, hits,ballAmounts=0,pauseTime=8;
    
    /** menu items */
    JMenuBar menus;
    JMenu fileMenu;
    JMenuItem quitItem;
    JMenuItem restartItem;   

    JTextField paddleWidthS, ballAmountsS,ballLeftover;
    String[] levels={"level1","level2","level3"};
    JComboBox myChoice; 
    /****************************************************
    Sets up the game like usual.
    ****************************************************/
    public Breakout() {
       myGUI = new JFrame();
       myGUI.setTitle("My Simple Breakout");
       myGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       myGUI.setLocation(100,100);
       myGUI.setSize(WIDTH, HEIGHT);
       myGUI.setLayout(new BorderLayout());
       
       paddleWidthS = new JTextField(2);
       ballAmountsS = new JTextField(2);
       ballLeftover = new JTextField(2);
       myChoice= new JComboBox(levels);
       JPanel panel = new JPanel();
       
       panel.add(new JLabel("PaddleWidth"));
       panel.add(paddleWidthS);
       panel.add(new JLabel("Balls"));
       panel.add(ballAmountsS);
       panel.add(new JLabel("BallsLeft"));
       panel.add(ballLeftover); 
       panel.add(new JLabel("Levels"));
       panel.add(myChoice);
       myChoice.addActionListener(this);
       myGUI.add(BorderLayout.NORTH, panel);
       paddleWidthS.setText("70");
       ballAmountsS.setText("3");
       ballLeftover.setText("3");
       paddleWidth=Integer.parseInt(paddleWidthS.getText());
       
       
       // create a GCanvas
       canvas = new GCanvas();
       canvas.setBackground(Color.cyan);
       myGUI.add(BorderLayout.CENTER,canvas);
       canvas.addMouseMotionListener(this);
     
       // set up the serve button
       serveButton = new JButton("Serve");
       serveButton.setBackground(Color.gray);
       serveButton.addActionListener(this);
       myGUI.add(BorderLayout.SOUTH, serveButton);

       // set up File menu
       fileMenu = new JMenu("File");
       quitItem = new JMenuItem("Quit");
       restartItem = new JMenuItem("Restart");
       quitItem.addActionListener(this);
       restartItem.addActionListener(this);
       fileMenu.add(restartItem);
       fileMenu.add(quitItem);
       menus = new JMenuBar();
       myGUI.setJMenuBar(menus);
       menus.add(fileMenu); 
          
       myGUI.setVisible(true);
       myGUI.validate();
       gameLayout();
    }
    /****************************************************
    Creating and return a new ball.
    ****************************************************/
    private GOval Ball() {
        double x = (WIDTH - ballWidth)/2;
        double y = (HEIGHT- ballWidth)/2;
        GOval ball = new GOval(x, y,ballWidth, ballWidth);
        ball.setFilled(true);
        ball.setColor(Color.magenta);
        if (Math.random() < 0.5)
            dx = -dx;
        return ball;
    }

    /****************************************************
    Creating the initial game layout.

    ****************************************************/
    private void gameLayout() {
        paddle = new GRect(WIDTH, HEIGHT-paddleHeight, paddleWidth, paddleHeight);
        paddle.setFilled(true);
        paddle.setColor(Color.blue);
        canvas.add(paddle);
        int x, y = 30;
        int n = WIDTH/brickWidth;
        for (int i=1; i<=2; i++){
            x = 0;
            for (int j = 0; j < n; j++) {
                GRect brick = new GRect (x, y, brickWidth, brickHeight);
                brick.setFilled(true);
                brick.setColor(Color.RED);
                canvas.add(brick);
                x += brickWidth+2;
            }
            y +=brickHeight+2;      
        }
        for (int i=1; i<=2; i++){
            x = 0;
            for (int j = 0; j < n; j++) {
                GRect brick = new GRect (x, y, brickWidth, brickHeight);
                brick.setFilled(true);
                brick.setColor(Color.GREEN);
                canvas.add(brick);
                x += brickWidth+2;
             }
            y += brickHeight+2;      
         }
         for (int i=1; i<=2; i++){
             x = 0;
             for (int j = 0; j < n; j++) {
                 GRect brick = new GRect (x, y, brickWidth, brickHeight);
                 brick.setFilled(true);
                 brick.setColor(Color.YELLOW);
                 canvas.add(brick);
                 x += brickWidth+2;
             }
             y += brickHeight+2;      
         }
    }

    /****************************************************
    Checking the ball position against paddle position.
    ****************************************************/
    private void checkPaddle(){
        double x = ball.getX();
        double y = ball.getY();
        Object aj = canvas.getElementAt(x,y+ballWidth);
        if (aj == null)
            aj = canvas.getElementAt(x+ballWidth,y+ballWidth);
        if(aj == paddle){
            dy = -dy;
            hits++;
            double pedPoint = paddle.getX();
            if (dx > 0 && x < pedPoint + 0.5*paddleWidth)
                dx = -dx;
            else if(dx < 0 && x > pedPoint + 0.5*paddleWidth)
                dx = -dx;
        }
    }
    
    /****************************************************
    Checking the ball position against wall position.
    ****************************************************/
    private void checkWall() {
        double x = ball.getX();
        double y = ball.getY();
        if (x <= 0 || x >= WIDTH -ballWidth) {
            dx = -dx;
        }
        if (y <= 0){
            dy = -dy;
        }
    }

    /****************************************************
    Checking the ball position against all of the bricks.
    ****************************************************/
    private void checkBrick() {
        double x = ball.getX();
        double y = ball.getY();
        GObject aj = canvas.getElementAt(x,y);
        if(aj == null){
            aj = canvas.getElementAt(x, y+ballWidth);
        }
        if(aj == null){
            aj = canvas.getElementAt(x+ballWidth, y+ballWidth);
        }
        if(aj == null){
            aj = canvas.getElementAt(x+ballWidth, y);
        }
        if(aj != null && aj != paddle){
            dy = -dy;
            canvas.remove(aj);
        }
    }
    
    /****************************************************
    Returning a boolean true if the ball is still in play;
    return false if the ball moves past the paddle.
    ****************************************************/
    private boolean isBallPlay() {
        boolean  ballPlay = true;
        if (ball.getY() > HEIGHT || canvas.getElementCount() == 2)
            ballPlay = false;
        return ballPlay;
    }

    /****************************************************
    Set the ball in play until the player misses or the
    game is over.
    ****************************************************/
    private void playRound() {
        dx = 2.0;  
        dy = 3.0;
        int hits = 0;
        ball = Ball();
        canvas.add(ball);
        ballAmounts++;
        int leftover=Integer.parseInt(ballAmountsS.getText())-ballAmounts;
        String leftoverS =""+leftover;
        ballLeftover.setText(leftoverS);
        while (isBallPlay()){
            checkWall();
            checkBrick();
            checkPaddle();
            ball.move(dx, dy);
            if(hits == 10){
                hits = 0;
                pauseTime--;
            }
            pause(pauseTime);
        }
        canvas.remove(ball);
        if (canvas.getElementCount() == 1){
            serveButton.setEnabled(false);
            JOptionPane.showMessageDialog(null, "you win!.", "Game Over", JOptionPane.INFORMATION_MESSAGE);
        }else if (ballAmounts== Integer.parseInt(ballAmountsS.getText())){
            serveButton.setEnabled(false);
            JOptionPane.showMessageDialog(null, "you lose.", "Game Over", JOptionPane.INFORMATION_MESSAGE);
        } 
    }

    /****************************************************
    Move the Paddle as the Mouse moves
    ****************************************************/
    public void mouseMoved(MouseEvent e){
         int aa=Integer.parseInt(paddleWidthS.getText());
         if(aa !=paddleWidth){
           paddleWidth=aa;
           canvas.remove(paddle);
           paddle = new GRect(WIDTH, HEIGHT-paddleHeight, paddleWidth, paddleHeight);
           paddle.setFilled(true);
           paddle.setColor(Color.BLUE);
           canvas.add(paddle);
        }
        double x = e.getX();
        if (x > WIDTH - paddleWidth)
            x = WIDTH - paddleWidth;
        paddle.setLocation(x, canvas.getHeight()-paddleHeight);
        
    }

    public void mouseDragged(MouseEvent e){
    // no need to complete this method
    }

    /****************************************************
    Respond to a button click
    Do not perform any actions directly in
    this method.  Instead, invoke a new thread so this
    method will return immediately.
    ****************************************************/
    public void actionPerformed(ActionEvent e){

        JComponent itemPressed = (JComponent) e.getSource();
        
        // create a new thread and indirectly call the run() method 
        
        if (itemPressed == quitItem)
            System.exit(1);
        if (itemPressed == restartItem){
            ballAmounts=0;
            ballLeftover.setText(""+Integer.parseInt(ballAmountsS.getText()));
            canvas.removeAll();
            gameLayout();
            serveButton.setEnabled(true);
        }
        if (itemPressed == serveButton){
            Thread theThread = new Thread(this);
            theThread.start();
        }
        
        switch(myChoice.getSelectedIndex()){
            case 0: pauseTime=8; break;
            case 1: pauseTime=5; break;
            default: pauseTime=3;
            }      
    }

 
    /****************************************************
    A new round is started and runs in a separate thread.

    No need to change this method.
    ****************************************************/
    public void run(){
        playRound();
    }

    /****************************************************
    This will pause the current thread the provided
    number of milliseconds.

    No need to change this method.
    ****************************************************/
    private void pause(int msecs){
        try{
            Thread.sleep(msecs);
        }catch (InterruptedException e){
            // ignore the exception
        }
    }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区精品在线| 亚洲欧美另类图片小说| 欧美日韩亚洲综合一区二区三区| 99精品国产99久久久久久白柏| 国精产品一区一区三区mba桃花| 久久99久久久久| 激情综合网av| 丰满少妇在线播放bd日韩电影| 国产精品456| 丁香六月久久综合狠狠色| 成人在线综合网| 91国产视频在线观看| 欧美巨大另类极品videosbest | 日韩av中文字幕一区二区| 亚洲成精国产精品女| 亚洲国产一区视频| 日本中文一区二区三区| 免费观看在线综合| 久久国产日韩欧美精品| 国内精品国产三级国产a久久| 国产久卡久卡久卡久卡视频精品| 国产成人午夜电影网| 91视频在线观看免费| 欧美视频日韩视频| 337p粉嫩大胆色噜噜噜噜亚洲 | 成人av免费在线观看| 99久久婷婷国产综合精品 | 久久精品国产亚洲a| www.亚洲人| 欧美美女视频在线观看| 26uuu国产电影一区二区| 亚洲欧美电影院| 日韩av一区二区三区四区| 国产成人a级片| 欧美性色黄大片| 国产亚洲综合在线| 亚洲国产日日夜夜| 国产精品综合久久| 欧美日韩国产综合草草| 国产日韩av一区二区| 国产精品久久综合| 久久精品国产第一区二区三区| 99久久国产综合精品色伊 | 国产欧美一区二区精品秋霞影院 | 色久优优欧美色久优优| 91精品国产高清一区二区三区蜜臀| 久久综合久色欧美综合狠狠| 亚洲免费电影在线| 国产精品亚洲第一 | 久久黄色级2电影| 色欧美乱欧美15图片| 久久综合成人精品亚洲另类欧美| 一区二区三区精品| 成人app下载| 国产欧美日韩久久| 日韩精品一二三区| 欧美三级中文字幕| 亚洲男人的天堂在线aⅴ视频| 国产一区二区精品久久| 欧美一二三在线| 亚洲电影一级片| 欧美色爱综合网| 亚洲国产日韩精品| 欧美无人高清视频在线观看| 中文字幕一区二区三区四区| 国产成人亚洲综合a∨猫咪| 日韩小视频在线观看专区| 亚洲超碰精品一区二区| 在线观看亚洲a| 亚洲午夜久久久| 91福利精品视频| 亚洲一二三四久久| 91麻豆国产福利精品| 亚洲激情图片一区| 91国产免费观看| 亚洲成人激情社区| 欧美一区二区三级| 激情欧美日韩一区二区| xf在线a精品一区二区视频网站| 麻豆成人久久精品二区三区红 | 亚洲色图在线视频| 色婷婷av久久久久久久| 亚洲欧美日韩在线不卡| 在线观看一区二区视频| 视频一区二区不卡| 欧美电影精品一区二区| 韩国一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 韩日av一区二区| 中文字幕一区av| 欧美在线视频全部完| 五月开心婷婷久久| 26uuu另类欧美亚洲曰本| 国产91精品在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 成人av动漫在线| 午夜精品视频在线观看| 精品对白一区国产伦| 成人av在线一区二区| 午夜精品久久久久| 精品国产不卡一区二区三区| 国产风韵犹存在线视精品| 亚洲欧美另类小说| 日韩视频在线观看一区二区| 国产成人免费视频精品含羞草妖精| 国产欧美日韩另类一区| 欧美日韩国产天堂| 国产福利视频一区二区三区| 亚洲精品一二三四区| 日韩欧美一级在线播放| 国产·精品毛片| 日av在线不卡| 亚洲猫色日本管| 久久亚洲二区三区| 欧美日韩一区二区电影| 国产福利一区二区| 蜜臀久久99精品久久久久宅男| 1000精品久久久久久久久| 欧美va亚洲va香蕉在线| 在线免费不卡电影| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美一区二区三区公司| 色综合久久综合| 国产成人综合视频| 蜜桃av噜噜一区二区三区小说| 中文字幕在线免费不卡| 精品三级av在线| 欧美午夜免费电影| 97久久超碰精品国产| 韩国视频一区二区| 日本不卡一区二区| 一区二区三区蜜桃网| 国产女同互慰高潮91漫画| 欧美电影免费观看高清完整版| 欧美日韩精品久久久| 91免费在线看| 成人美女视频在线观看18| 免费人成网站在线观看欧美高清| 亚洲三级久久久| 亚洲尤物在线视频观看| 欧美国产视频在线| 日本一区二区三区在线观看| 精品国产一区二区三区四区四| 欧美剧在线免费观看网站| 欧美体内she精高潮| 一本久久综合亚洲鲁鲁五月天| av午夜精品一区二区三区| 懂色一区二区三区免费观看| 国产一区二区主播在线| 黑人巨大精品欧美一区| 国产一区二区电影| 国产精品88av| jvid福利写真一区二区三区| 国产98色在线|日韩| 不卡欧美aaaaa| 一本色道久久综合狠狠躁的推荐| 91麻豆免费在线观看| 色av一区二区| 69堂亚洲精品首页| 精品国产一区二区三区四区四| 久久人人爽爽爽人久久久| 久久久久久久精| 国产精品毛片a∨一区二区三区| 国产精品久久久久一区二区三区共| 国产午夜精品一区二区三区嫩草| 国产精品三级电影| 亚洲欧美视频在线观看视频| 亚洲福利一区二区| 久久国内精品视频| 成人ar影院免费观看视频| 在线视频综合导航| 91精品综合久久久久久| 久久婷婷成人综合色| 中文字幕亚洲一区二区av在线| 亚洲欧美色图小说| 久久精品国产精品亚洲综合| 高清成人免费视频| 在线影视一区二区三区| 日韩视频在线永久播放| 中文字幕乱码日本亚洲一区二区| 亚洲柠檬福利资源导航| 秋霞午夜鲁丝一区二区老狼| 国产激情一区二区三区桃花岛亚洲| av午夜一区麻豆| 欧美一级xxx| 亚洲色图欧美偷拍| 国内精品久久久久影院薰衣草| 色综合久久久久综合99| 欧美一级免费观看| 亚洲欧洲日韩在线| 久久99精品久久久久久国产越南 | 欧美体内she精高潮| 日韩精品中文字幕一区二区三区 | 成人在线视频首页| 91精品国产综合久久久久久久久久| 国产亚洲欧美在线| 香蕉乱码成人久久天堂爱免费| 国产美女视频一区| 欧美精品自拍偷拍| 亚洲日本在线视频观看|