Sembra strano anche a me. Sto anche sviluppando un gioco, un sacco di livelli, posso facilmente avere 100 oggetti di gioco sullo schermo, non ho visto un problema simile.
Se usato correttamente, drawbitmap dovrebbe essere molto veloce; è poco più di un comando di copia. Non disegno nemmeno i cerchi in modo nativo; Ho Bitmap di cerchi pre-renderizzati.
Tuttavia, le prestazioni di Bitmap in Android sono molto sensibili a come lo si fa. La creazione di bitmap può essere molto costosa, in quanto Android può automaticamente ridimensionare automaticamente le png che richiedono un uso intensivo della CPU. Tutte queste cose devono essere fatte esattamente una volta, al di fuori del ciclo di rendering.
Sospetto che stiate cercando nel posto sbagliato. Se crei e utilizzi lo stesso tipo di immagini negli stessi modi, raddoppiare il numero di immagini dello schermo non dovrebbe ridurre le prestazioni di un fattore di oltre 4. Al massimo dovrebbe essere lineare (un fattore di 2).
Il mio primo sospetto sarebbe che la maggior parte del tempo della CPU viene speso nel rilevamento delle collisioni. A differenza del disegno di bitmap, questo di solito sale come il quadrato del numero di oggetti interagenti, perché ogni oggetto deve essere testato per la collisione contro ogni altro oggetto. Hai raddoppiato il numero di oggetti di gioco, ma la tua prestazione è scesa a un quarto, ovvero in base al quadrato del numero di oggetti. Se questo è il caso, non disperare; ci sono modi per fare il rilevamento delle collisioni che non crescono come il quadrato del numero di oggetti.
Nel frattempo, eseguivo test di base. Cosa succede se in realtà non disegni metà degli oggetti? Il gioco funziona molto più velocemente? In caso contrario, non ha nulla a che fare con il disegno.
fonte
2012-01-11 05:02:31