Senza background funziona, anche se appena la pallina cade mi va in force close. L'errore immagino sia dovuto al fatto che hai tolto il punteggio, perché è un nullpointer nel metodo Score.submitTo() di openfeint, che è all'interno di postDistanceLeaderBoard a sua volta richiamato nel finishGame.
Comunque sono riuscito a provare e ho capito cosa intendi: il body nel world "fisico" è giusto, ma visualizza solo l'ultimo segmento della linea nella scena.
Vuoi una linea curva, giusto? Quindi mi sa che devi per forza utilizzare l'object pool per salvarne i segmenti.
Nella seconda soluzione, visualizzi solo l'ultima parte della linea perché semplicemente la sposti. Infatti nell'onLoadScene allochi una linea (un segmento) e l'aggiungi alla scena, mentre a te serve aggiungerne una nuova ad ogni movimento del dito e non spostare quell'unico segmento.
Usando il pool, invece, la logica dovrebbe essere questa:
- Il gioco parte e disegno una linea di 10 segmenti: il pool è vuoto, quindi alle 10 richieste di 10 segmenti, ne creerà 10.
- La palla rimbalza: dico all'object pool che può riciclare i 10 segmenti, quindi, di suo, li nasconde.
- Disegno un'altra linea di 5 segmenti: il pool ne ha 10 al suo interno, quindi ad ogni richiesta prenderà uno di quei 10 segmenti e alla fine 5 resteranno inutilizzati.
- La palla rimbalza: vedi secondo punto.
- Disegno ancora una linea, ma di 13 segmenti: il pool ne ha dieci, quindi alla richiesta di un'undicesimo, dodicesimo e tredicesimo segmento, ne creerà di nuovi.
- E così via, ottenendo un pool di dimensioni dinamiche.
I vantaggi di questa sorta di "cache dinamica" sono un risparmio di cpu perché crei segmenti solo quando ne hai bisogno (inizio del gioco o linea più lunga di tutte le precedenti), e non hai lag perché il garbage collector non entra in azione.
Secondo me, hai lo stesso problema anche nel caso dell'object pool perché si trova a contenere sempre un solo segmento, in quanto (credo) ricicli i segmenti appena li hai disegnati, mentre devi riciclarli quando l'utente ha finito di disegnare la linea. Può essere?
