⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slapshot.java

📁 Describes simple java code for developments. IT comtains 10 codes
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.lang.Math;

public class Slapshot extends Frame implements ActionListener, MouseListener, MouseMotionListener, Runnable 
{
    Menu menu1;
    MenuBar menubar;
    MenuItem menuitem0, menuitem1, menuitem2, menuitem3;
    Image memoryImage;
    Image backGroundImage;
    Image[] gifImages = new Image[2];
    Graphics memoryGraphics;
    Thread thread;
    MediaTracker tracker;
    Vector<Puck> pucks = new Vector<Puck>();
    int yourScore = 0;
    int theirScore = 0;
    int offsetX = 0;
    int offsetY = 0;
    int speed = 50;
    int maxVelocity = 10;
    Label label1, label2;
    int retVal = 0;
    boolean dragging = false;
    boolean stop = true;
    boolean runOK = true;
    OkCancelDialog textDialog;

    public static void main(String[] args)
    {
        new Slapshot();
    }

    Slapshot() 
    {
        menubar = new MenuBar();

        menu1 = new Menu("File");

        menuitem0 = new MenuItem("Start");
        menu1.add(menuitem0);
        menuitem0.addActionListener(this);

        menuitem1 = new MenuItem("End");
        menu1.add(menuitem1);
        menuitem1.addActionListener(this);

        menuitem2 = new MenuItem("Set speed...");
        menu1.add(menuitem2);
        menuitem2.addActionListener(this);

        menuitem3 = new MenuItem("Exit");
        menu1.add(menuitem3);
        menuitem3.addActionListener(this);

        menubar.add(menu1);
        setMenuBar(menubar); 

        addMouseListener(this);
        addMouseMotionListener(this);

        textDialog = new OkCancelDialog(this, 
            "Set speed (1-100)", true);

        setLayout(null);

        label1 = new Label();
        label1.setText("0");
        label1.setBounds(180, 310, 20, 20);
        label1.setVisible(false);
        add(label1);

        label2 = new Label();
        label2.setText("0");
        label2.setBounds(400, 310, 20, 20);
        label2.setVisible(false);
        add(label2);

        tracker = new MediaTracker(this);
        backGroundImage = Toolkit.getDefaultToolkit().
            getImage("rink.gif");
        tracker.addImage(backGroundImage, 0);
    
        gifImages[0] = Toolkit.getDefaultToolkit().
            getImage("puck.gif");
        tracker.addImage(gifImages[0], 0);

        gifImages[1] = Toolkit.getDefaultToolkit().
            getImage("blocker.gif");
        tracker.addImage(gifImages[1], 0);

        try {
            tracker.waitForID(0);
        }catch (InterruptedException e) {
            System.out.println(e);
        }
    
        setTitle("Slapshot!");

        setResizable(false);

        setSize(backGroundImage.getWidth(this), 
            backGroundImage.getHeight(this));

        setVisible(true);

        memoryImage = createImage(getSize().width, getSize
            ().height);
        memoryGraphics = memoryImage.getGraphics();

        thread = new Thread(this);
        thread.start();
  
        this.addWindowListener(new WindowAdapter(){
            public void windowClosing(
                WindowEvent e){
                    runOK = false;
                    System.exit(0);
                }
            }
        );
    }

    public void init()
    {
        Point position, velocity;
        pucks = new Vector<Puck>();

        Rectangle edges = new Rectangle(10 + getInsets().left,  
            getInsets().top, getSize().width - (getInsets().left
            + getInsets().right), getSize().height - (getInsets().top 
            + getInsets().bottom));

        for (int loopIndex = 0; loopIndex < 12; loopIndex++){
    
            pucks.add(new Puck(gifImages[0], 
                0, maxVelocity, edges, this));

            try {
                Thread.sleep(20);
            }
            catch (Exception exp) {
                System.out.println(exp.getMessage());
            }
        }

        pucks.add(new Puck(gifImages[1], 1, maxVelocity, edges, 
            this));

        pucks.add(new Puck(gifImages[1], 2, maxVelocity, edges, 
            this));
    }

    public void run() 
    {
        Puck puck;

        while (runOK) {
            if(!stop){

                int numberLeft;
                for (int loopIndex = 0; loopIndex < 12; loopIndex++){
                    puck = (Puck)pucks.elementAt(loopIndex);

                    if(puck.gone()){
                        continue;
                    }

                    retVal = puck.slide(pucks.elementAt
                        (13).rectangle, pucks.elementAt
                        (12).rectangle);

                    numberLeft = 0;
                    for (int loopIndex2 = 0; loopIndex2 < 12; 
                        loopIndex2++){
                        if(!((Puck)pucks.elementAt(loopIndex2))
                            .gone()){
                            numberLeft++;
                        }
                    }

                    if(retVal < 0){
                        if(yourScore + theirScore + numberLeft == 11){
                            label1.setText(String.valueOf
                            (++yourScore));
                        }
                    }

                    if(retVal > 0){
                        if(yourScore + theirScore + numberLeft == 11){
                            label2.setText(String.valueOf
                                (++theirScore));
                        }
                    }

                    int struckPuck = -1;

                    for (int loopIndex3 = 0; loopIndex3 < 13; 
                        loopIndex3++){
                        Puck testPuck = (Puck)pucks.elementAt
                            (loopIndex3);

                        if (puck == testPuck || testPuck.gone()){
                            continue;
                        }

                        if(puck.rectangle.intersects
                            (testPuck.rectangle)){
                            struckPuck = loopIndex3;
                        }
                    }

                    if (struckPuck >= 0){
                        Puck puck1 = (Puck)pucks.elementAt(struckPuck);
                        Puck puck2 = (Puck)pucks.elementAt(loopIndex);

                        if(puck2.immovable()){
                            puck1.velocity.x = -puck1.velocity.x;
      
                            retVal = puck1.slide(pucks.elementAt
                                (13).rectangle, pucks.elementAt
                                (12).rectangle);

                            numberLeft = 0;
                            for (int loopIndex4 = 0; loopIndex4 < 12; 
                                loopIndex4++){
                                if(!((Puck)pucks.elementAt
                                    (loopIndex4)).gone()){
                                    numberLeft++;
                                }
                            }

                            if(retVal < 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label1.setText(String.valueOf
                                        (++yourScore));
                                }
                            }

                            if(retVal > 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label2.setText(String.valueOf
                                        (++theirScore));
                                }
                            }

                        } else if(puck1.immovable()){
                            puck2.velocity.x = -puck2.velocity.x;

                            retVal = puck2.slide(pucks.elementAt(13).
                                rectangle, pucks.elementAt
                                (12).rectangle);

                            numberLeft = 0;
                            for (int loopIndex5 = 0; loopIndex5 < 12; 
                                loopIndex5++){
                                if(!((Puck)pucks.elementAt 
                                    (loopIndex5)).gone()){
                                    numberLeft++;
                                }
                            }

                            if(retVal < 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label1.setText(String.valueOf
                                        (++yourScore));
                                }
                            }

                            if(retVal > 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label2.setText(String.valueOf
                                        (++theirScore));
                                }
                            }
                        } 
                        else {
                            retVal = puck1.slide(pucks.elementAt
                               (13).rectangle, pucks.elementAt
                               (12).rectangle);

                            numberLeft = 0;

                            for (int loopIndex6 = 0; loopIndex6 < 12;  
                                loopIndex6++){
                                if(!((Puck)pucks.elementAt(loopIndex6))
                                    .gone()){
                                    numberLeft++;
                                }
                            }

                            if(retVal < 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label1.setText(String.valueOf
                                        (++yourScore));
                                }
                            }

                            if(retVal > 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                label2.setText(String.valueOf
                                    (++theirScore));
                                }
                            }

                            retVal = puck2.slide(pucks.elementAt
                                (13).rectangle, pucks.elementAt
                                (12).rectangle);

                            numberLeft = 0;
                            for (int loopIndex7 = 0; loopIndex7 < 12; 
                                loopIndex7++){
                                if(!((Puck)pucks.elementAt
                                    (loopIndex7)).gone()){
                                    numberLeft++;
                                }
                            }

                            if(retVal < 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label1.setText(String.valueOf
                                        (++yourScore));
                                }
                            }

                            if(retVal > 0){
                                if(yourScore + theirScore + numberLeft 
                                    == 11){
                                    label2.setText(String.valueOf
                                        (++theirScore));
                                }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -