LibGDX平臺相關代碼

關于Interfacing with platform specific code的譯文

這是一個關于這個問題的論壇討論,還包括iOS的具體內容绝淡。

有時宙刘,有必要訪問平臺特定的API,例如添加由諸如Swarm的框架提供的排行榜功能或者廣告服務集成牢酵。

以下示例假定我們僅在Android上實現(xiàn)非常簡單的排行榜API悬包。 對于其他目標平臺,我們只需要記錄調用或提供模擬返回值馍乙。

Android API如下所示:

/** Let's assume this is the API provided by Swarm **/
public class LeaderboardServiceApi {
   public void submitScore(String user, int score) { ... }
}

第一步是以接口的形式創(chuàng)建API的抽象布近。該接口被放入核心項目中:

public interface Leaderboard {
   public void submitScore(String user, int score);
}

接下來,我們?yōu)槊總€平臺創(chuàng)建具體的實現(xiàn)丝格,并將它們放入各自的項目中撑瞧。Android項目:

/** Android implementation, can access LeaderboardServiceApi directly **/
public class AndroidLeaderboard implements Leaderboard {
   private final LeaderboardServiceApi service;

   public AndroidLeaderboard() {
      // Assuming we can instantiate it like this
      service = new LeaderboardServiceApi();
   }

   public void submitScore(String user, int score) {
      service.submitScore(user, score);
   }
}

桌面項目

/** Desktop implementation, we simply log invocations **/
public class DesktopLeaderboard implements Leaderboard {
   public void submitScore(String user, int score) {
      Gdx.app.log("DesktopLeaderboard", "would have submitted score for user " + user + ": " + score);
   }
}

HTML5項目:

/** Html5 implementation, same as DesktopLeaderboard **/
public class Html5Leaderboard implements Leaderboard {
   public void submitScore(String user, int score) {
      Gdx.app.log("Html5Leaderboard", "would have submitted score for user " + user + ": " + score);
   }
}

接下來,ApplicationListener獲取一個構造函數显蝌,我們可以通過它來傳遞具體的Leaderboard實現(xiàn):

public class MyGame implements ApplicationListener {
   private final Leaderboard leaderboard;

   public MyGame(Leaderboard leaderboard) {
      this.leaderboard = leaderboard;
   }

   // rest omitted for clarity
}

在每個啟動類中预伺,我們然后簡單地實例化MyGame,將相應的Leaderboard實現(xiàn)作為參數傳遞曼尊,例如在桌面上:

public static void main(String[] argv) {
   LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
   new LwjglApplication(new MyGame(new DesktopLeaderboard()), config);
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末扭屁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涩禀,更是在濱河造成了極大的恐慌,老刑警劉巖然眼,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艾船,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機屿岂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門践宴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人爷怀,你說我怎么就攤上這事阻肩。” “怎么了运授?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵烤惊,是天一觀的道長。 經常有香客問我吁朦,道長柒室,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任逗宜,我火速辦了婚禮雄右,結果婚禮上,老公的妹妹穿的比我還像新娘纺讲。我一直安慰自己擂仍,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布熬甚。 她就那樣靜靜地躺著逢渔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪则涯。 梳的紋絲不亂的頭發(fā)上复局,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音粟判,去河邊找鬼亿昏。 笑死,一個胖子當著我的面吹牛档礁,可吹牛的內容都是我干的角钩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼呻澜,長吁一口氣:“原來是場噩夢啊……” “哼递礼!你這毒婦竟也來了?” 一聲冷哼從身側響起羹幸,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤脊髓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后栅受,有當地人在樹林里發(fā)現(xiàn)了一具尸體将硝,經...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡恭朗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了依疼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痰腮。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖律罢,靈堂內的尸體忽然破棺而出膀值,到底是詐尸還是另有隱情,我是刑警寧澤误辑,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布沧踏,位于F島的核電站,受9級特大地震影響稀余,放射性物質發(fā)生泄漏悦冀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一睛琳、第九天 我趴在偏房一處隱蔽的房頂上張望盒蟆。 院中可真熱鬧,春花似錦师骗、人聲如沸历等。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寒屯。三九已至,卻和暖如春黍少,著一層夾襖步出監(jiān)牢的瞬間寡夹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工厂置, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留菩掏,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓昵济,卻偏偏與公主長得像智绸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子访忿,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內容