2013-04-14 131 views
2

我想在玩遊戲時獲取用戶的GPS位置(libgdx)。我發現this教程爲創建Android手機的GPSTracker。我的問題是,這是爲Android的活動/任務編寫的,但不適用於libgdx。沒有libgdx它完美的工作,但我不知道如何使用libgdx和there isn't any opportunity與libgdx使用GPS。使用libgdx獲取GPS位置

確實有人知道是否有可能通過libgdx使用GPS以及如何使用GPS?這將是非常好的。

回答

3

您可以從Android項目包裝器創建您的GPSTracker,並將其傳遞給Game實例。

這是我做過什麼來test.-

GPSTracker gps = new GPSTracker(MainActivity.this); 
MyGame game = new MyGame(gps.getLatitude(), gps.getLongitude()); 

GPSTracker正在恢復以及我的當前座標。

+1

我想這在onCreate方法,但我的問題是,該'GPSTracker'類需要「Context」類型的值。在Android項目中,我提交了'MainActivity.this',但是當使用libgdx時,contentView不在MainActivity上... – vtni

+0

Mmh剛剛嘗試過,它似乎正在工作並返回正確的座標(正在編輯我的答案)。你是否會得到任何異常? – ssantos

+0

當然,這將工作,但我想初始化GPSTracker在遊戲的深層次的子類。當然,我可以將它提交給每個子類,但是它會保存在每個子類中。沒有更好的選擇嗎? – vtni

0

您可以從Applicaion對象(請看:Static way to get 'Context' on Android?)獲取上下文對象,然後使用connect構造GPSTracker類。

+0

還有一個問題:MainActivity類在android項目中,所以我無法從任何其他類調用MainActivity.getAppContext()(在我的情況下,它是渲染器類)。 – vtni

+0

是的。因此,您可以從Application Class的靜態方法中獲取上下文,當您的應用程序的任何組件運行時,Application對象將被維護。 –

0

要通過上下文的GPSTracker,嘗試在你的AndroidLauncher.java與「getApplicationContext()」

AndroidLauncher.context = getApplicationContext(); 
this.gps = new GPSTracker(this.context); 

AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); 
     initialize(new MyGdxGame(gps.getLatitude(), gps.getLongitude()), config);