Java:变量作为类的链接

标签 java game-engine

如果您听说过 Nethack,您就会熟悉诸如多态之类的游戏功能。

在我正在修改的 Java 游戏中,小怪(英雄、怪物)被描述为 Java 类,它们都扩展了非常基础的 Char.java 类。我正在尝试向该基类添加一个新字段:一个公共(public) current_form 字段,该字段应该是指向代表您或怪物当前形态的类的链接。

Char.java 类将具有 attack()move() 以及其他一些将触发 current_form 的方法分别为.attack()current_form.move(),其中current_form被替换为类名。

因此,如果我有 Hero 类(扩展 Char):

Hero h = new Hero();

我攻击:

h.attack();

如果我的表单是 Rat.class,它将触发一个 do_attack() 方法作为我当前的表单(读取:从名为我当前表单的类),它将分别触发Rat.do_attack()

你是如何实现这种行为的?

最佳答案

这可能是类似的事情

public class Hero extends Char {
    Char polymorphedTo;

    public void attack() {
        if(polymorphedTo != null)
            polymorphedTo.attack();
        else
            normalAttackCode();
    }
}

这允许一种简单的方法将任何合适的操作重定向到您要变形的表单的代码。

关于Java:变量作为类的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173333/

相关文章:

java - 从 AndEngine 切换到 libgdx - 需要了解什么?

C++:如何正确设置 "Item"类

java - 访问 fragment View 时偶尔出现 NPE

java - 选择垃圾收集器的性能指标

java - Apache HttpGet url编码问题(加号,+)

c++ - 为什么像虚幻引擎这样的大项目要自己写容器类?

c# - 'TextMeshPro/Distance Field' : failed to open source file: 'TMPro_Properties.cginc' at line 126 (on d3d11) 中的着色器错误

java - 尝试将图像上传到 VIA Contentful Content Management API JAVA

java - 对象内部的属性在 session 中消失,但 Bean 本身不会消失

game-engine - 编写游戏引擎时需要知道的事情