【问题标题】:libgdx user data classeslibgdx 用户数据类
【发布时间】:2017-04-25 13:08:53
【问题描述】:

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

【问题讨论】:

  • 这个问题太模糊,无法回答。我们不知道您正在阅读什么教程或作者在想什么。您可能应该向教程作者发送消息询问。或者在 Libgdx 留言板上发布指向它的链接并在那里询问它,这样它就可以成为更多的讨论。
  • 好吧,那就这样吧

标签: java libgdx user-data


【解决方案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

在从MyActor 接口的每个Actor 中,它必须返回一个MyActor.Type 类型的枚举,这样就没有继承,并且参与者没有明显不需要的层次结构。

实现MyActor 的每个Actor 都有自己的类,可以一起存储在libGDX 集合中,例如Array<MyActor>(),也可以轻松检查相应类型的actor。

编辑

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

boolean isType(Type type);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多