我目前正在用Java開發一個表格RPG遊戲。我開發了遊戲邏輯和連接(套接字/ RMI)。現在該遊戲可以與CLI一起工作。我想用JavaFX和sceneBuilder實現GUI。我設計了所有場景並開始編寫控制器。我的問題是:我如何將我的遊戲邏輯傳遞給GUI?在JavaFX中傳遞遊戲邏輯?
0
A
回答
0
這個問題是相當概念化的,因此是概念上的答案。
OO方法。只要模型(遊戲邏輯)與視圖(CLI/GUI)很好地分開,它就不是什麼大問題。假設你有某種類的類,你需要的只是將它的實例傳遞給相關的控制器。你大概每個FXML視圖都有一個控制器。在加載場景時,可以使用setControllerFactory通知FXMLLoader
有關如何創建控制器的信息。有了這種認識一點,你可以嘗試以下操作:
MainGameController(Game game) {
this.game = game; // now your controller has an instance of your game logic
}
然後,在加載(在Application
子類有此可能)你的看法:
FXMLLoader loader = ...
Game game = ...
loader.setControllerFactory(t -> new MainGameController(game));
如果你的遊戲邏輯被分成幾個部件和每個都可以有自己的視圖,只需採用與您的控制器相同的實例。
務實的方法。假設你不想在幕後進行大量的佈線。在這種情況下,你可以在整個遊戲中創建一個單一的訪問點,本質上類似於Singleton模式。如果您的遊戲在遊戲邏輯之上還有其他服務,例如AudioPlayer
,AssetLoader
,這種方法實際上可能更有益。
class GameApplication {
static Game game; // + getters/setters
static AudioPlayer audioPlayer;
...
}
然後在您MainGameController
(或任何其他):
// called automatically by FXMLLoader
public void initialize() {
this.game = GameApplication.getGame();
}
相關問題
- 1. SpriteKit遊戲邏輯
- 2. 填字遊戲的邏輯
- 3. 遊戲主循環邏輯
- 4. spawer的遊戲邏輯
- 5. 遊戲的超時邏輯
- 6. 遊戲:球反彈邏輯
- 7. 遊戲跳轉邏輯
- 8. 賓果遊戲邏輯
- 9. Node.js的遊戲邏輯
- 10. ActionScript 3中的遊戲邏輯和遊戲循環
- 11. Unity中的遊戲邏輯編程
- 12. python中的賓果遊戲邏輯
- 13. XML文件中的遊戲邏輯
- 14. 「票務遊戲」棋盤遊戲邏輯灰色路線
- 15. Java數組遊戲 - 遊戲邏輯概念
- 16. 生命遊戲的邏輯錯誤(C++)
- 17. Libgdx scene2d 3D遊戲與2D邏輯?
- 18. 視覺C++邏輯遊戲幫助,請
- 19. 設計遊戲隨機化邏輯
- 20. Nim的遊戲邏輯錯誤
- 21. C++ NIM遊戲邏輯錯誤
- 22. 基本遊戲邏輯/ ai設計
- 23. Javascript:3次嘗試遊戲邏輯
- 24. 顏色遊戲邏輯有問題
- 25. Android SQLite和遊戲模式邏輯
- 26. Unity MonoBehaviour對象vs遊戲邏輯
- 27. 邏輯錯誤遊戲程序
- 28. 遊戲邏輯數學開頭
- 29. 製作棋子游戲的邏輯?
- 30. 井字遊戲邏輯不起作用