libgdx 用户数据 类

libgdx user data classes

我正在学习 libgdx 并且我遇到了一个教程,该教程为游戏中的所有演员制作了 UserData classes,例如对于演员,玩家,他制作了一个 class PlayerUserData 扩展了 UserData,它是一个抽象 class,它有一个名为 getUserData 的方法,它返回一个枚举,指示它是哪种类型的演员(地面,玩家,...)。在教程中,他解释说他用它来存储信息,这对碰撞很有用。这个我不是很明白,为什么不把信息存储在actor的actorclass中呢?它有哪些关于碰撞的信息?

听起来很复杂...为什么不坚持简单、久经考验的方法,如下所示;

interface MyActor {

   enum Type {
       // Types of actors
       a, b, c, d
   }
   Type getType();
}

Actor1 implements MyActor
Actor2 implements MyActor
Actor3 implements MyActor
Actor4 implements MyActor

在从 MyActor 接口的每个 Actor 中,它必须 return 类型为 MyActor.Type 的枚举,这样就没有继承,actor 也没有层次结构显然不需要。

每个 Actor 实现 MyActor 都有自己的 class,可以一起存储在 libGDX 集合中,例如 Array<MyActor>(),也可以检查各自类型的演员没有麻烦。

编辑

您甚至可以将以下方法添加到 MyActor 以方便检查演员的类型;

boolean isType(Type type);