Diminution significative des performances lorsque j'utilise des polices de polices ou bitmap

StackOverflow https://stackoverflow.com//questions/12652777

  •  11-12-2019
  •  | 
  •  

Question

Je construis une carte de bingo et utilise la classe de boutons Starling pour les chiffres sur la carte.

Si j'utilise les polices bitmapfont ou normales, le FPS tombe de 40 à 10. Si j'utilise uniquement la texture sans les polices, le FPS reste le même.

Qu'est-ce que je fais mal ??

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);
        }

Était-ce utile?

La solution

Je soupçonne que vous finissez par un bon nombre d'appels de dessin.Essayez d'activer le moniteur de statistiques de voir.

C'est beaucoup de boutons à utiliser au même endroit.Chacun comprend à la fois une texture pour le bouton ainsi qu'un champ de texte séparé pour l'étiquette.Le champ de texte provoquera un appel de tirage supplémentaire car il change de contextes.Puisque vous en avez un grand nombre d'entre eux (25 pour Bingo), vous vous retrouverez avec quelque chose de l'ordre des 50 appels de dessinés lorsque le contexte passe entre les images et le texte.Cela se produira même si la police bitmap est dans votre Texture Atlas.

Une approche meilleure et plus performante consisterait à ignorer le bouton et à créer votre propre sous-classe d'image qui affiche une ou plusieurs de vos images numériques et gère les événements tactiles à ses propres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top