2013-04-10 19 views
6

Così ho costruito quello che speravo sarebbe diventato un semplice gioco per Android. Per prima cosa ho creato una versione web per farlo funzionare (http://scolvin.com/ballgame), quindi lo ho spostato in PhoneGap e usato gli accelerometri per controllare il gioco. L'unico problema (ed è un problema di interruzione dello spettacolo) è che il risultato è orrendamente lento (gli aggiornamenti sono circa una volta al secondo invece di 20 ms).Giochi PhoneGap, canvas e javascript lenti

È così lento come PhoneGap, senza soluzione corrente? O c'è un proiettile d'oro che mi manca?

Il gioco utilizza easeljs e box2d-web.

Ciò che è strano sembra funzionare ad una velocità ragionevole su Android Chrome, ma molto lento sul "browser" di Android (che mi sembra di ricordare basato su firefox?) E su phonegap che utilizza presumibilmente lo stesso renderer html/js interrter.

Ho provato a semplificare il gioco, eliminando quanto più possibile, utilizzando setInterval anziché accelerometer.watchAcceleration tutto inutilmente.

risposta

2

E 'un problema del Browser Android

vedere la seguente risposta:

Sencha Touch 2 - Android Performance

(E' per Sencha Touch, ma penso che il i punti principali della risposta sono gli stessi)

1

Il problema di prestazioni con il rendering o la lettura dell'accelerometro? Forse potresti creare una modalità demo per verificare come si comporta senza l'input dell'utente.

+0

Scusate, avrei dovuto essere più chiaro. L'ho fatto, usando 'setInterval' piuttosto che' watchAcceleration' per dare il via ad ogni passaggio. – SColvin

2

Invece di utilizzare setInterval() per FPS cosa, è necessario utilizzare requestAnimationFrame() E 'di gran lunga più efficiente

iOS 5+ e Android 3+ utilizzare l'accelerazione hardware per la tela di canapa, per cui sarà necessario atleast quei dispositivi per prestazione solida. Qualsiasi cosa prima di iOS 5.0 e Android 3.0 utilizzerà la CPU usando il rendering del software.

Quindi hanno bisogno di tenere a mente