Java游戏开发,使用“类”

时间:2017-08-05 18:23:44

标签: java class object

我一直在用Java开发一个基于文本的小型RPG游戏。我写了一个故事情节并做了库存/装甲设备。在访问某些代码时,我遇到了一个问题。在游戏开始时,用户可以选择成为射手/法师/战士(我将这些称为“乔布斯”而不是“班级”)。每个都有自己的类。但是当把它们整合到游戏中时,我发现我做了很多if语句,总是检查用户是否是射手/法师/战士。 如何在不使用if语句的情况下更好地集成它?我是初学者/中级水平,现在做对象约一个月。

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用多态,但如果方法名称不同,这是不可能的......

如果您想以多态方式执行此操作:

首先,阅读多态性。 Here's这是一个很好的网站。

首先,让你的所有类扩展一个超类,比如说Player(你必须先编写Player类才能extend)。要扩展Player类,您可以在" job"的标题中写下这样的内容。类:

public class Mage extends Player {

当然,您可以将Mage替换为不同的类,具体取决于" job"你正在定义。

在您必须编写的Player类中,您应该定义希望子类能够执行的所有方法。您应该创建这些方法abstract,但请记住,如果您有抽象方法,则必须在所有子类中定义。所以,如果你有一个名为" Cast"的abstract方法。你需要在每个工作中定义这个"工作"类。

但是一旦你用方法创建了一个超类(我建议使用一般abstract方法,如 Attack Defend ),只需定义这些方法在子类中,你很高兴。

如果您想以非多态方式执行此操作:

if-statement虽然不一定令人愉快,但如果您不想尝试使行为具有多态性,那么这似乎是最有效的方式。

你能说出if-statement的结构是什么吗?可能有一种更简单的方法来编写它,并减少代码量(使其更清晰)。

例如,如果你说:

if (a.getClass() == X.class)

您可以考虑使用instanceOf代替:

if (a instanceof X)

除此之外,我对如何做到这一点没有更好的想法。