Android utilizza la struttura RectF per il disegno di bitmap. Sto lavorando sulla mia struttura di gioco, quindi per esempio, avrà un Sprite e coordinate x/y, larghezza, altezza, velocità e così via. Ciò significa che ogni volta nel mio ciclo di rendering devo convertire questi numeri interi in float quando capisco i RectF di origine/destinazione da usare ... in alternativa, posso essere molto più universale e usare i float ovunque così che quando arriva il momento di simulare il fisica e render, tutti i tipi sono già dello stesso tipo ... anche se non è necessario per quale proprietà è (non ho bisogno di un float per "posizione x", ma dovrò lanciarlo durante il rendering se non).Per Android, dovrei usare il tipo di dati float più spesso per il mio gioco, o semplicemente lanciare il float quando disegno?
se i galleggianti in genere sono più inefficienti di 2-10x (per http://developer.android.com/guide/practices/performance.html), qual è la giusta direzione da prendere?
TLDL: Devo eseguire il cast di int su float, o semplicemente avere tutte le variabili che contribuiscono all'inizio, anche se i float sono inefficienti? Quanto è inefficiente un typecast?
I forsee un periodo di tempo dedicato alla creazione di profili nel tuo prossimo futuro .... :) Per tutti vale la pena, i calcoli sui float sono lenti, così come il casting costante ... forse la profilazione mostra che è meglio per ti attacchi ai galleggianti piuttosto che cambiarli costantemente. – Shark
L'unica risposta corretta è: prova sia con il benchmark. Dipende se i calcoli o il casting prevalgono. (O se uno dei due è davvero un problema, per cominciare.) – millimoose
In molti casi, se non la maggior parte, semplicemente non si può evitare l'aritmetica in virgola mobile. Si noti inoltre che il collegamento fornito indica che l'aritmetica in virgola mobile può essere fino a 2 volte più lenta sui dispositivi senza FPU. La differenza di velocità 10 volte è menzionata come confronto tra due diversi dispositivi. – harism