[Java游戏]:如何实现游戏板

时间:2015-01-19 14:53:31

标签: java swing

对于考试,我们正在开发一个具有共享全局状态的分布式游戏(使用Java RMI),这是一个包含所有棋子位置的游戏板。现在我们必须开始实施棋盘游戏,如下图所示:

问题是我们不知道如何开始。我们要美国摇摆吗?我们对Swing的经验很少......只是按钮,标签,textarea等等...... 您能否告诉我们一些关于使用什么以及如何开始的建议?有没有特定的图书馆?谢谢

4 个答案:

答案 0 :(得分:2)

我个人会使用JLabel,因为我也没有Swing的经验。你可以让它们变得非常简单,同样可以在屏幕上移动它们。

这就是说,

如果你想学习新东西并给老师留下深刻印象,那么摇摆将是你要走的路。:)

因为我觉得你正在寻找更多的方向,所以我会对我如何解决这个问题进行一些扩展。

  • 创建类boardField扩展JLabel(或任何你想称之为圆圈的)
  • 让它有状态:空,被占用
  • 使用arraylist跟踪boardFields
  • 让棋盘在JPanel中显示

添加我没有提及的所有内容:P

答案 1 :(得分:1)

如果您打算制作这些高级图形功能,例如LibGDX,您可能需要查看现有的OpenGL Java实现。这可以通过Swing实现,但这需要大量的工作和搞乱。

这是一个额外的学习,但它是一个很好的一步,使一个令人印象深刻的跨平台游戏。你将能够在Android和iOS上展示它,这是一个奖励。

答案 2 :(得分:1)

我会创建自己的JComponent,通过继承它并覆盖其paintComponent方法来绘制板。像这样:

import javax.swing.*;
import java.awt.*;

public class MyBoardComponent extends JComponent {
  public void paintComponent(Graphics g) {
    g.drawOval(50,50,100,100);
  }
  public Dimension getPreferredSize() {
    return new Dimension(200,200);
  }
  public static void main(String args[]) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
          JFrame f = new JFrame("Test");
          f.getContentPane().add(new MyBoardComponent());
          f.pack();
          f.setVisible(true);
        }
      });                       
  }
}

当然,您现在需要为您的电路板设计一个好的模型并更改paintComponent的代码,以便根据当前的游戏状态在屏幕上正确绘制它。

我建议您阅读" Swing tutorials"

答案 3 :(得分:0)

实际上对于这样的事情,我要么使用像libGDX或JavaFX这样的OpenGL库。与使用libGDX进行相比,JavaFX可能会使您获得更快的结果。

在另一个答案中,Cod已经提到了libGDX。 JavaFX内置于较新的Java版本中,并且在图形编辑器等方面具有更好的支持。