2017-04-25 23 views
1

我学习libgdx和我遇到一个教程,做的UserData类游戏中的所有参与者,例如,对于一个演员,运动员,他做了一个类PlayerUserData是扩展的UserData这是一个抽象类有一个名为getUserData的方法,它返回一个枚举值,指示它是什么类型的actor(ground,player,...)。在教程中,他解释说他用它来存储信息,并且它对碰撞有用。我不完全理解这一点,为什么你不把这些信息存储在演员的演员类中?它有什么关于碰撞的信息?libgdx用户数据类

+0

这个问题太含糊回答。我们不知道您正在阅读的教程或作者的想法。你应该给教程作者留言。或者在Libgdx留言板上发布一个链接,并在那里提问,这样可以进行更多的讨论。 – Tenfour04

+0

好生病做 – DreamsInHD

回答

1

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

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 

在每一个ActorMyActor接口,它必须返回MyActor.Type类型的枚举,这样一来就没有继承和演员都没有层级结构,其中显然是不需要的。

每个Actor实施MyActor有它自己的类,可以被一起存储在libGDX类别如Array<MyActor>()和也被检查是否没有麻烦的相应类型的演员。

编辑

你甚至可以添加下面的方法来MyActor对一个演员的类型容易检查;

boolean isType(Type type); 
+0

铝好,谢谢! – DreamsInHD