2010-02-23 76 views
0

我在學習如何在Android上製作視頻遊戲,因此我需要獲得一些體面的教程,介紹如何使用SurfaceView在Android上製作圖形目的。然而,我嘗試過的每一個圖形教程(主要是SurfaceView的東西)都失敗了。請注意,我不想使用XML,因爲它不在我的元素之內,而Google只是想將這種技術出售給整潔的廣告,我可以通過編程的方式做到這一點。我遇到了各種Android圖形/ SurfaceView教程的問題

我遇到的一個主要問題是,有許多來自Google和第三方的教程,其代碼使用導入的android.opengl.GLSurfaceView命令,或者導入子集GLSurfaceView,並且從不適用於我的IDE。每次我嘗試導入其中一個時,Eclipse都會說它基本上不識別該包。奇怪的是我可以導入android.opengl。*,儘管這仍然導致這些包中的一些代碼引用了無法識別的類型和/或方法。

在試圖解決第一個問題一段時間後,我發現Lunar Lander示例沒有嘗試導入這兩個問題庫中的任何一個。因此,我將代碼和參考資源拉到了我的一個幼兒項目中,這使得該項目中的所有其他項目都未被使用。當然,我確實更改了Lunar Lander代碼所在的包,並更改了LunarLander.java中的類名稱或其他內容,但這並不重要。我能夠在Eclipse中構建這個東西。然而當我去運行它時,它什麼都不會做,只會崩潰。沒有顯示任何月球着陸器圖形或任何東西,模擬器會給我這個錯誤信息基本上說,我的應用程序意外停止工作,使我關閉應用程序。

1)什麼是與opengl.GLSurfaceView包的問題處理? 2)Lunar Lander的例子是什麼? 3)哪裏有關於如何製作Android視頻遊戲的好教程?

謝謝。

+0

這將有助於從異常中發佈堆棧跟蹤。你可以通過logcat得到這個。 – 2010-02-23 00:37:36

回答

3

你是用2D還是3D建造遊戲?我不能說3D,但我已經制作了一些簡單的2D遊戲,SurfaceView比幫助更困難。仿真器僅模擬一個內核,因此您在繪圖上不會獲得性能優勢。此外,線程開銷和維護是一個痛苦的處理和阻止許多功能(我花了幾個小時只是試圖從各種配置啓動GameOver對話框,並且額外的線程阻止了這種情況的發生)。

SurfaceView的一個替代方法是實現自己的繼承View的類,並覆蓋onDraw(Canvas)繪製任何你喜歡的東西(這就是我和我的朋友所做的)。

要回答你兩點:

  • 我從來沒有在3D加工或使用Android的OpenGL的,但是Eclipse(如果這是你使用的是什麼)可以是一個有點氣質與定位的Android資源。其餘的課程是否加載?

  • Lunar Lander向您展示瞭如何創建和銷燬擴展SurfaceView和SurfaceHandler的視圖。同樣,SurfaceView可能是一個很好的選擇,但如果你剛開始使用Android並構建簡單的2D遊戲,我認爲它不是必需的。

  • 很好的教程很難找到。我學會了足夠讓this 2D game花費幾個小時的時間與電子書版本Hello Android

我的一些好友和我是在遊戲上的工作爲Android這個學期,我們還設置了a blog,我們希望做一個資源給別人當學期的推移。可悲的是,目前沒有太多內容。

祝你好運!

+2

這是不好的建議。根據我的經驗,SurfaceView速度比常規視圖快3倍(在我的硬件設備上,全屏幕SurfaceView大約8毫秒,常規視圖爲25毫秒)。 – DKIT 2012-03-19 13:58:57