我正在制作一个简单的tic tac toe游戏作为LWJGL的练习。
当我编写方法来绘制棋盘方块和棋子(如x和o棋子)时,我应该将它们放在一个可以被各种对象(如棋盘)调用的graphicsLib类中吗?或者让每个对象包含绘制自己元素的代码是最佳做法?我希望尽可能扩展代码。
具体来说,我有一个Board类,它是Square类型的对象的集合,并且方形对象被分配了一个枚举状态CLEAR,X或O.然后我在一个调用相应的状态上运行一个switch语句。绘制正方形的方法。我应该将每个方法放在它自己的对象中还是有一个大型图形对象(比如公共类graphicsLib),然后提供绘制各种元素的方法?
组织此活动的最佳方式是什么?
答案 0 :(得分:1)
尽可能使用面向对象的方法。当我写这样的东西时,我通常会让每个对象提供至少两种方法:
public void update(int delta);
public void render();
这样我的对象和它们的许多实例都知道如何更新自己并自我渲染。然后,您可以构建代码,以便Board类的更新和呈现方法将在其子Square上调用update
和render
(请参见下面的示例)。这提供了一些好处:
render
方法中正确管理您的兄弟姐妹。以下是层次结构渲染的示例。
public class Board {
List<Square> squares;
public render() {
// Render your board first
...
// Render child squares
for (Square square : squares) {
square.render();
}
}
}
你可以想象,你的主游戏循环可以简单地告诉你的棋盘对象渲染你就完成了。您无需了解董事会可能需要呈现的其他内容。