MyException - 我的异常网
当前位置:我的异常网» J2EE » 小弟我们爱分享-俄罗斯方块源码(一分钟copy到机器

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

www.MyException.Cn  网友分享于:2013-02-12  浏览:11次
我们爱分享----俄罗斯方块源码(一分钟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);
    }

文章评论

我的丈夫是个程序员
我的丈夫是个程序员
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
中美印日四国程序员比较
中美印日四国程序员比较
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员和编码员之间的区别
程序员和编码员之间的区别
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
代码女神横空出世
代码女神横空出世
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
编程语言是女人
编程语言是女人
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
旅行,写作,编程
旅行,写作,编程
 程序员的样子
程序员的样子
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
如何成为一名黑客
如何成为一名黑客
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
一个程序员的时间管理
一个程序员的时间管理
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
每天工作4小时的程序员
每天工作4小时的程序员
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
漫画:程序员的工作
漫画:程序员的工作
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员的鄙视链
程序员的鄙视链
老程序员的下场
老程序员的下场
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
那些争议最大的编程观点
那些争议最大的编程观点
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
为什么程序员都是夜猫子
为什么程序员都是夜猫子
鲜为人知的编程真相
鲜为人知的编程真相
我是如何打败拖延症的
我是如何打败拖延症的
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
Java程序员必看电影
Java程序员必看电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有