【发布时间】:2017-10-11 16:17:15
【问题描述】:
作为 Javafx 和 java 的新手,我无法想象国际象棋游戏的设计。 所以我的 JavaFX 应用程序扩展类中有如下启动方法:
public void start(Stage primaryStage) throws Exception{
Scene scene = new Scene(createContent());
primaryStage.setTitle("ChessGame");
primaryStage.getIcons().add(new Image("file:images/icon.png"));
primaryStage.setScene(scene);
primaryStage.show();
}
protected Parent createContent(){
Pane root = new Pane();
root.setPrefSize(WIDTH*TILE_SIZE, HEIGHT*TILE_SIZE);
boardInitialize("8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - -");
root.getChildren().add(tileGroup);
root.getChildren().add(pieceGroup);
return root;
}
问题是,我不知道将游戏逻辑放在我的应用程序中的什么位置。游戏逻辑将处理玩家的回合,检查检查和将死,生成可能的移动等(如果可能的话,稍后还有一个非常粗糙的 AI)。我试图将它塞进启动方法,但它不起作用,因为启动方法只运行一次。 Pygame 和他们的游戏循环比这更有意义,我可以看到我将如何使用它。所以我的问题是:我在哪里把游戏逻辑放在我的应用程序中?
【问题讨论】:
-
如果您正在创建一个国际象棋游戏,您的结构将不同于一个总是动画的游戏。您的游戏将根据动作进行。所以你的逻辑可能应该放在你的事件处理程序中。例如:移动完成后检查是否合法,检查是否有捕获,检查是否有队友或将死。
标签: model-view-controller javafx