ho voluto implementato un effetto a catena realistico in Android troppo, in modo da condividere la mia esperienza:
Come un'implementazione di riferimento ho preso la porta Chikuyonok JavaScript di Sergey di Neil Wallis Java algo. Ecco un parco giochi dove è possibile sperimentare con il codice JS originale: http://jsfiddle.net/esteewhy/5Ht3b/6/
All'inizio, ho portato il codice JS in Java solo per rendermi conto che non c'è modo di spremere più di 1 fps sul mio hardware Huawei U8100. (Ci sono diversi tentativi simili in rete con la sola conclusione: sono ridicolmente lenti).
BTW, questa risposta SO è stata molto utile per ottenere una conoscenza di base su come codificare una grafica interattiva in Android: https://stackoverflow.com/a/4946893/35438. Ho preso in prestito il contatore dei fps da lì.
Quindi ho deciso di provare Android NDK per reimplementare algo originale in puro C (il mio primo incontro con esso in 10+ anni!). Nonostante i documenti di NDK siano un po 'confusi (soprattutto per quanto riguarda requisiti e prerequisiti), tutto ha funzionato come un incantesimo, quindi sono stato in grado di raggiungere fino a 30 fps - potrebbe non essere troppo impressionante, ma comunque, un miglioramento radicale rispetto al codice Java .
Infine, ho messo online tutto il mio lavoro: https://github.com/esteewhy/whater, quindi sentitevi liberi di giocare con quello.Esso contiene:
- Codice di palla di rimbalzo interattivo menzionato sopra (solo per il riferimento).
- Increspatura dell'acqua Porta Java (lento come l'inferno!)
- Implementazione di acqua increspata C (richiede NDK da compilare e JDK per creare il file .h).
(Il progetto non è "pulita", vale a dire: tutti i file binari sono lì, così può provare a farlo funzionare "così come sono", anche senza NDK.)
Uno dei incorporato in live wallpapers in Android è acqua increspata, quindi è certamente possibile. – Wyzard