您的位置:首页 > 其它

单机俄罗斯方块游戏制作心得(四)

2011-04-13 22:29 369 查看
下面说的是游戏工具界面的搭建。在MainFrame里定义下面属性

private GamePanel gamePanel;

 //级别

 private JLabel levelTextLabel = new JLabel("级别");

 private JLabel levelLabel = new JLabel();

 private Box levelTextBox = Box.createHorizontalBox();

 private Box levelBox = Box.createHorizontalBox();

 //分数

 private Box scoreTextBox = Box.createHorizontalBox();

 private Box scoreBox = Box.createHorizontalBox();

 private JLabel scoreTextLabel = new JLabel("分数");

 private JLabel scoreLabel = new JLabel();

 //下一个

 private Box nextTextBox = Box.createHorizontalBox();

 private JLabel nextTextLabel = new JLabel("下一个");

 //继续

 private Box resumeBox = Box.createHorizontalBox();

 private JLabel resumeLabel = new JLabel();

   //暂停

 private Box pauseBox = Box.createHorizontalBox();

 private JLabel pauseLabel = new JLabel();

 //开始

 private Box startBox = Box.createHorizontalBox();

 private JLabel startLabel = new JLabel(); 

 //工具类

 private JPanel toolPanel = new JPanel();

 在MainFrame类里的构造器里添加下面代码来创造界面public MainFrame() {

  this.currentLevel = 1;

  this.gamePanel = new GamePanel(this);

  

  BoxLayout toolPanelLayout = new BoxLayout(this.toolPanel, BoxLayout.Y_AXIS);

  this.toolPanel.setLayout(toolPanelLayout);

  this.toolPanel.setBorder(new EtchedBorder());

  this.toolPanel.setBackground(Color.gray);

  //分数

  this.scoreTextBox.add(this.scoreTextLabel);

  this.scoreLabel.setText(String.valueOf(this.score));

  this.scoreBox.add(this.scoreLabel);

  //级别

  this.levelTextBox.add(this.levelTextLabel);

  this.levelLabel.setText(String.valueOf(this.currentLevel));

  this.levelBox.add(this.levelLabel);

  //继续按钮

  this.resumeLabel.setIcon(RESUME_ICON);

  this.resumeLabel.setPreferredSize(new Dimension(3, 25));

  this.resumeBox.add(this.resumeLabel);

  //暂停按钮

  this.pauseLabel.setIcon(PAUSE_ICON);

  this.pauseLabel.setPreferredSize(new Dimension(3, 25));

  this.pauseBox.add(this.pauseLabel);

  //开始

  this.startLabel.setIcon(START_ICON);

  this.startLabel.setPreferredSize(new Dimension(3, 25));

  this.startBox.add(this.startLabel);

  //下一个

  this.nextTextBox.add(this.nextTextLabel);

  this.toolPanel.add(Box.createVerticalStrut(10));

  this.toolPanel.add(scoreTextBox);

  this.toolPanel.add(Box.createVerticalStrut(10));

  this.toolPanel.add(scoreBox);

  this.toolPanel.add(Box.createVerticalStrut(10));

  this.toolPanel.add(levelTextBox);

  this.toolPanel.add(Box.createVerticalStrut(10));

  this.toolPanel.add(levelBox);

  this.toolPanel.add(Box.createVerticalStrut(15));

  this.toolPanel.add(this.resumeBox);

  this.toolPanel.add(Box.createVerticalStrut(15));

  this.toolPanel.add(this.pauseBox);

  this.toolPanel.add(Box.createVerticalStrut(15));

  this.toolPanel.add(this.startBox);

  this.toolPanel.add(Box.createVerticalStrut(30));

  this.toolPanel.add(this.nextTextBox);

  this.blankBox.add(Box.createHorizontalStrut(99));

  this.toolPanel.add(blankBox);

  

  this.add(this.gamePanel, BorderLayout.CENTER);

  this.add(this.toolPanel, BorderLayout.EAST);

  this.setPreferredSize(new Dimension(349, 416));

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  this.setLocation(350, 200);

  this.setResizable(false);

  this.setTitle("俄罗斯方块");

  this.pack();

   }

 

 

 


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  游戏 工具