2017-04-25 38 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