我一直在用Java開發一個基於文本的小型RPG遊戲。我寫了一個故事線,並做了庫存/裝甲裝備。當涉及到訪問某些代碼時,我遇到了一個問題。在遊戲開始時,用戶可以選擇成爲射手/法師/戰士(我將其稱爲「作業」而不是「班級」)。每個人都有自己的班級。但是當他們融入遊戲時,我發現我正在做很多if語句來總是檢查用戶是否是射手/法師/戰士。 如何在不使用if語句的情況下更好地整合這一點?我是初學者/中級水平,現在做對象大約一個月。Java遊戲開發,與「類」合作
1
A
回答
1
這將是最容易使用的多態這一點,但這是不可能的,如果方法有不同的名字......
如果你想這樣做多態:
首先,閱讀多態性。 Here's一個很好的網站來做到這一點。
要開始了,你所有的類的擴展超,說球員(你將不得不寫Player類,然後才能extend
它)。者來擴展播放類,你可以寫這樣的事情在你的「工作」類的標題:
public class Mage extends Player {
當然,你根據什麼「工作」要定義替代Mage
爲不同的類別。
在你需要編寫的Player類中,你應該定義你希望你的子類能夠執行的所有方法。你應該使這些方法abstract
,但請記住,如果你有一個抽象方法,,你將不得不在你所有的子類中定義它。所以,如果你有一個名爲「Cast」的方法,你需要在每個「job」類中定義這個方法。
但是,一旦你已經創建了一個超類,與方法(我建議有一般abstract
方法,如攻擊或保衛),只是定義在子類中這些方法,你是好去。
如果你想這樣做,非多態:
的if-statement
,雖然不一定愉快,似乎是這樣做的最有效的方法,如果你不想嘗試使行爲多態。
你能說你的if-statement
的結構是什麼嗎?可能有更簡單的方法來編寫它,並減少代碼的數量(使其更清晰)。
例如,如果你說:
if (a.getClass() == X.class)
你可以考慮使用instanceOf
代替:
if (a instanceof X)
除此之外,我沒有對如何做到這一點任何更好的想法。
相關問題
- 1. Java遊戲開發:圖形
- 2. Java 3D遊戲開發
- 3. 開發遊戲
- 4. 開發遊戲
- 5. VB6遊戲開發
- 6. cocos2d遊戲開發
- 7. iPhone遊戲開發
- 8. Iphone遊戲開發
- 9. iPhone遊戲開發
- 10. Xbox遊戲開發
- 11. flashdevelop遊戲開發
- 12. Android遊戲開發
- 13. HTML5遊戲開發
- 14. Swift是否適合iOS遊戲開發?
- 15. PHP在javascript遊戲開發相結合
- 16. 如何開發手機Java遊戲?
- 17. Java鍵盤輸入 - 遊戲開發
- 18. Java 2D遊戲開發:多鍵輸入
- 19. adhoc無線java遊戲開發
- 20. 開始Android遊戲開發
- 21. 首發flash遊戲開發
- 22. 遊戲開發中的HTML與ActionScript3?
- 23. VB.NET作爲遊戲開發工具
- 24. 的Java可達代碼錯誤(渲染類遊戲開發)
- 25. Android遊戲開發 - Java或Flash開發還是flash動畫?
- 26. Android交通遊戲開發
- 27. 遊戲開發資源
- 28. 測驗遊戲開發
- 29. C++ 3d遊戲開發
- 30. 3D空間遊戲開發
多態現象,也許? –
閱讀子類和實現。這個想法是你有一個框架,並提供通用命名方法中的工作特定代碼。 –