我正在学习libgdx,并且遇到了一个教程,该教程为游戏中的所有演员创建了UserData类,例如,针对演员,玩家,他制作了一个PlayerUserData类,该类扩展了UserData,后者是一个抽象类,具有一个称为getUserData返回一个枚举,指示它是哪种角色(地面,玩家,...)。在本教程中,他解释说他是用来存储信息的,它对于碰撞很有用。我对此不太了解,为什么不将信息存储在演员的演员类中?以及有关碰撞的哪些信息?
最佳答案
听起来很复杂...为什么不仅仅坚持下面的简单,久经考验的方法?
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
在从
Actor
接口的每个MyActor
中,它必须返回类型为MyActor.Type
的枚举,这样就没有继承,而且参与者显然没有必要使用任何层次结构。每个实现
Actor
的MyActor
都有其自己的类,可以将它们一起存储在libGDX集合(例如Array<MyActor>()
)中,也可以轻松检查actor的相应类型。编辑
您甚至可以在
MyActor
中添加以下方法,以方便检查角色的类型。boolean isType(Type type);
关于java - libgdx用户数据类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43611646/