当前位置: 代码迷 >> J2EE >> 小弟我们爱分享-俄罗斯方块源码(一分钟copy到机器上试玩下)
  详细解决方案

小弟我们爱分享-俄罗斯方块源码(一分钟copy到机器上试玩下)

热度:339   发布时间:2016-04-22 03:43:50.0
我们爱分享----俄罗斯方块源码(一分钟copy到机器上试玩下)
Java code
//大爱伙可以先把源码copy到机器上试一下,再回贴,这是我上学时写的一直没有公开过(不过还有些bug代码也没重构,后来//没时间放下了 一直没写下去了,不怎么会玩贴多次发送吧),分不多谢谢大家的支持谢谢大家无声的掌声^_^package game;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Graphics;import java.awt.Insets;import java.awt.LayoutManager;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.util.Random;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.Timer;import javax.swing.border.Border;public class QuareGame extends JFrame implements ActionListener {    private GamePanel gamePanel ;    //菜单工具组件    JMenuBar menuBar = new JMenuBar();    //menuBar.setSize(20, 20);    JMenu menuFile = new JMenu("游戏");    JMenuItem newGame = new JMenuItem("新游戏");    JMenuItem pauseGame = new JMenuItem("暂停");    JMenuItem overGame = new JMenuItem("结束");    JMenu menuHelp=new JMenu("帮助");    //    JLabel labLevel=new JLabel("选择关卡:");    JTextField txtLevel=new JTextField();        public QuareGame(GamePanel gp) {        setBounds(500, 100, 400, 480);        setTitle("my small game");        setLayout(new BorderLayout());        JFrame.setDefaultLookAndFeelDecorated(true);        //添加菜单条                setJMenuBar(createMenuBar());        this.gamePanel = gp;        if(gamePanel!=null){            add(gamePanel);        addKeyListener(gamePanel);        }        labLevel.setBounds(260, 140, 50, 30);        txtLevel.setBounds(260, 180, 50, 30);//        add(labLevel);//        add(txtLevel);        setVisible(true);        // setResizable(false);    }    // 菜单条    public JMenuBar createMenuBar() {                menuFile.add(newGame);        menuFile.add(pauseGame);        menuFile.add(overGame);                menuBar.add(menuFile);        menuBar.add(menuHelp);        menuHelp.add(new JMenuItem("版本号"));        //添加事件        newGame.addActionListener(this);        pauseGame.addActionListener(this);        overGame.addActionListener(this);        return menuBar;    }    public static void main(String[] args) {        JFrame.setDefaultLookAndFeelDecorated(true);        QuareGame game = new QuareGame(new GamePanel(new int[22][12] ,new int[2][2]));    }    @Override    public void actionPerformed(ActionEvent e) {        //System.out.println(e.getActionCommand());        if(e.getActionCommand(). equals("新游戏")){            System.out.println("newgame");            if(gamePanel!=null){                remove(gamePanel);                removeKeyListener(gamePanel);            }            this.gamePanel = new GamePanel(new int[22][12] ,new int[2][2]);            add(gamePanel);            addKeyListener(gamePanel);        }else if(e.getActionCommand().equals("暂停")){            pauseGame.setText("继续");            gamePanel.timer.stop();        }else if(e.getActionCommand().equals("继续")){            pauseGame.setText("暂停");            gamePanel.timer.start();        }else if(e.getActionCommand().equals("结束")){            if(gamePanel!=null)            this.remove(gamePanel);            gamePanel=null;        }    }}class GamePanel extends JPanel implements KeyListener {    /**     *      */    private static final long serialVersionUID = 1L;    Random random=new Random();    JLabel labLevel=new JLabel("选择关卡:");    JTextField txtLevel=new JTextField();    int size = 20;// 显示大小    // 座标    int x = 4, y;    int i = 0, j = 0;    Timer timer=null;    int level=1;    int score =0;    int steep=1000;//方块下降的速度    TimerAction timerAction;    //绘图颜色    Color mapColor;    Color moveShapColor;    int colors[][]={{255, 222, 173},{47 ,79, 79},{255, 228 ,225},{0 ,255 ,0},{0, 0 ,255},{255, 193, 37}    ,{156 ,156 ,156 },{202 ,225, 255},{171, 130, 255},{224 ,102 ,255},{255 ,62 ,150},{255, 0 ,0}};    // squareType类型和 squareState状态    int squareType, squareState;    int nextState=0;//每次产生一个新的会自加1并取2的余数赋给自己    int map[][];// = new int;    int nextTypeAndState [][];    // 方块的几种形状态和状态 (每个方块由一个4*4的矩阵构成)    // I O T Z S L J    int shape[][][];    //构造函数        public GamePanel(int map[][],int nextTypeAndState[][]) {        this.nextTypeAndState=nextTypeAndState;        this.map=map;        this.shape=this.initShap();        setBackground(new Color(250, 250, 250));        initMap();        initWall();        createdSquare();        timerAction=new TimerAction();        timer = new Timer(steep, timerAction);        timer.start();        score = 0;        initTypeAndState();        this.mapColor=createColor();        this.moveShapColor=createColor();//        setLayout();//        //        labLevel.setBounds(260, 140, 80, 30);//        txtLevel.setBounds(50, 80, 50, 80);//        txtLevel.setText("111");//        txtLevel.setSize(10, 10);//        add(labLevel,BorderLayout.EAST);//        add(txtLevel,BorderLayout.EAST);        setSize(400, 480);    }
  相关解决方案