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

下面说的是游戏工具界面的搭建。在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();
   }

 

 

 单机俄罗斯方块游戏制作心得(四)_第1张图片

 

你可能感兴趣的:(游戏,工具)