Domanda

Sto costruendo una scheda di bingo e usi la classe pulsante Starling per i numeri sulla carta.

Se utilizzo il bitmapfont o i font normali, i fps diminuiscono da 40 a 10. Se uso solo texture senza i caratteri, i fps rimangono gli stessi.

Cosa sto facendo male ??

for(var i:int = 0; i < rows * cols ; i++)
        {
            var btn:Button = new Button(Assets.getTexture("btn"),String(i+1));
            btn.fontName="dig"
            btn.x = (i % cols) * (btn.width + spacerX) + btnXoffset;
            btn.y = Math.floor(i / cols) * (btn.height + spacerY) + btnYoffset;
            addChild(btn);
        }
.

È stato utile?

Soluzione

Sospetto che tu stia finendo con un buon numero di chiamate di disegni.Prova abilitare il monitor delle statistiche per vedere.

Questo è un sacco di pulsanti da usare in un unico posto.Ognuno include sia una consistenza per il pulsante che un campo di testo separato per l'etichetta.Il campo di testo causerà una chiamata in più perché cambia i contesti.Dal momento che hai un gran numero di loro (25 per il bingo), finirai con qualcosa nell'ordine di 50 chiamate in cui il contesto passa avanti e indietro tra le immagini e il testo.Questo accadrà anche se il carattere bitmap è nella tua texture atlante.

Un approccio migliore e più performante sarebbe quello di saltare il pulsante e creare la propria sottoclasse dell'immagine che visualizza una o più delle immagini numeriche e gestisce gli eventi touch da solo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top