2010-10-26 57 views
0

目前我有一個卡通人物,幾乎佔據了一個表面視圖的全屏,而我的小應用程序只是在不同座標處的ontouch事件期間爲這個2D角色製作動畫。什麼是在Surfaceview上動畫2D圖形的最簡單方法?

我現在正在做的是每一次重繪整個角色,這種方式我需要爲每一幀都有一個特定的圖形。

我只是想知道如果它更好地將字符分成不同的部分,例如頭,手,腿,並且每當ontouch事件發生時,我只需要重新繪製特定部分?

你認爲利弊怎麼樣?它是不是CPU密集型?

回答

0

這真的歸結於你的圖像如何設置。 讓單個圖像佔據整個屏幕意味着每個幀必須重新繪製整個屏幕,這是Android設備應該能夠做的。如果你把你的角色分成不同的部分,它可能看起來好像你只需重繪一小部分屏幕,但如果你只是重繪一個部分,那麼它仍然會處於舊的位置,除非你畫出它,這意味着你可能有無論如何做一個完整的重繪。有時你可以很聰明地計算出屏幕上哪些區域需要重繪,然後只重繪這些區域,但這會變得非常複雜。 另一個值得思考的想法是內存使用情況,但如果內存中有大量全屏圖像,某些手機可能沒有足夠的可用內存並且可能會崩潰。通過將圖像分成小部分,你應該減少這個機會。

+0

謝謝你的評論Skorulis,你是對的,這些都是我現在努力解決的所有問題。就我個人而言,我認爲最簡單的方法是使用單個圖像並重新繪製整個屏幕,只是在圖像數量不斷增加時不能確定性能會降低...... – kolslorr 2010-10-26 06:37:24

+0

我認爲除非您重新繪製,否則不應該有任何性能下降該屏幕每幀多次。如果你期望很多圖像,我會更加擔心記憶。請記住,即使您的PNG很小,當您加載它們時,它們也會膨脹爲位圖。 – skorulis 2010-10-26 22:17:31

相關問題