2012-01-06 93 views
4

問候大家! 我正嘗試從C#XNA 4.0轉換爲Java中的Java Android dev。首先,我必須說,微軟在他們的移動平臺上做了很棒的遊戲開發工作。令人遺憾的是,全球約有20人擁有Win Mob 7手機...... *
在XNA中開發真的很容易理解,一切都爲您完成。 但我想讓我的應用程序給人,而不僅僅是給比爾的朋友或誰擁有那些少數WM手機...安卓繪圖方法運行緩慢

而這裏來了......我不能畫一個!以令人滿意的速度的位圖。 我通過這本書去:

(www.apress.com/9781430230427)開始的Android遊戲馬里奧Zechner

所以我認爲這不會致使是壞的 - 實際繪製。但是,... 我嘗試了不同風格的繪圖...從書中提供一個(呈現Screen類到RenderView),然後從本教程的方法http://www.edu4java.com/androidgame/androidgame3.html,然後最簡單的 http://mikeyhogarth.wordpress.com/2010/10/09/how-to-develop-pong-for-android/乒乓與原語。

我不明白,爲什麼即使繪製原始圖像和移動3個原始對象也可能會這麼慢。

我試着移動1!位圖(來自edu4java教程)和它不能不斷移動。 即使我使用sleep()方法暫停Thread並重新引導10(或20(或30))FPS,它仍然很糟糕。 (Wildfire S)

好吧,好吧,Wildfire S不是有史以來最快的Android,而是繪製一個!位圖不能是那個硬核。

而且我知道我必須有用於拉伸的新主題,我必須通過SurfaceView做到這一點,畫到畫布等

我couldn't發現周圍的interwebs任何會幫助我。 我希望它可以是有史以來最簡單的答案,我會看起來像互聯網歷史上的gratest noob,但我會忍受它...

是否有enybody誰知道怎麼做得更好?

(我不使用OpenGL EP因爲我感興趣的只是簡單的2D遊戲(還))

謝謝你甚至閱讀。

埃爾汗

+1

您需要提供更多具體信息以知道您出錯的位置。即使是最慢的Android手機,也可以畫出大於30fps的位圖。你是否將位圖的位深度與顯示的位深相匹配?你是否要求系統將其完全不透明?您是否將位圖數據保存在位圖對象中,而不是從資源中反覆讀取它?提供一些細節,然後「我們」可以回答你的問題。 – BitBank 2012-02-01 18:40:36

+0

請發佈代碼片段,以便我們找出錯誤的地方。 – 2012-03-07 13:37:41

回答

3

這可能有助於與性能:如果你是在一個高級別API構建,你應該能夠您的清單內沒有開啓硬件加速。它使用簡單,應該讓事情更順暢。訣竅是在需要時啓用它,並在沒有任何密集事件發生時將其禁用。 http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html

+0

要進行更多控制,請在用戶與某物(如觸摸屏幕)交互時將其打開,然後在擡起手指時將其停用。這可以通過在代碼中關閉和打開來實現,而不是在清單中不斷運行。 – SpicyWeenie 2012-03-09 01:40:50