我一直在用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空间游戏开发
多态现象,也许? –
阅读子类和实现。这个想法是你有一个框架,并提供通用命名方法中的工作特定代码。 –