#984
Message
par Bubu » lundi 12 septembre 2022 à 21:02
Concernant mon problème pour rendre un texte sur une texture, il y a du mieux.
D'abord le fichier police est pris en compte. (Par contre les polices que j'ai trouvées sont sans accents. Donc pour des mots français par exemple, on a un rendu qui est un mélange de lettres rendues selon la police en argument, et pour les autres, la police système android. Inacceptable. C'est hideux.
Un autre truc, qui m'avait pris une semaine de prise de tête, c'est de rendre correctement les textes qui vont de gauche à droite ou l'inverse. Maintenant, les deux sont parfaitement gérés, et centrés, ligne après ligne.
Mais il me reste un gros problème : la taille du dimensionnement du texte est erronée. Trop petit. Donc le texte s'affiche sur plusieurs lignes, alors qu'il tient parfaitement sur une seule ligne.
Le texte que je veux rendre c'est niviz.
Le résultat :
nivi
z
Finalement, c'est ce que je choisis. La largeur du texte est la largeur de l'écran. Mais la taille de la bitmap qui la représente suit correctement la taille du texte en pixels. Il n'y a pas de performances perdues, la bitmap, donc la texture, ont exactement la taille du rendu.
Miracle tout fonctionne bien.
Sauf que je suis dans une enculade, je précise ; je ne sais pas comment prévenir l'objet parent, que cette page est terminée.
Pour passer à la page suivante, ou précédente.
Car en général le changement de page s'effectue via des boutons comme "suivant, retour", ...
Selon les paramètres qui peuvent changer, l'écran titre dure 3s, mais une fois achevé je ne sais pas comment charger la page principale. Mais pourtant je sens que la solution est au bout des lèvres......................
J'envisage de créer un évènement (comme onPageFinished(), mais je n'ai pas assez de context. S'il faut changer de page de jeu, j'ai besoin d'avoir accès à l'objet Game et de ses accesseurs.)
Finalement j'ai trouvé une solution.
Si la page courante est la page de présentation, et qu'elle est finie, je passe à la page principale.
C'est l'objet dérivé de Game (SudokuGame) qui le gère finalement, via la dérivation de la méthode onDraw(long deltaTimeMillis).
Encore un bug : pour vérifier qu'il n'y a pas de fuite mémoire, je laisse le programme tourner pendant des nuits.
Et j'ai remarqué que le programme s'arrêtait aléatoirement dans les 10-12 heures sans message d'erreur.
J'ai trouvé la source : le MediaPlayer (objet que j'utilise pour les bruitages) n'est pas multitâches.
Je n'ai pas d'excuses, c'est la première chose qui est décrite dans la description.
Alors, sachant quelle méthode plantait, j'ai changé le code.
Résultat, maintenant ça ne plante plus toutes les demi-journées, mais toutes les 5 secondes. Toujours sans message.
Bref. Enfin bon. Je vais réutiliser l'objet SoundPool, on peut régler le nombre de voix, et c'est l'objet adapté pour jouer des sons courts.
Modifié en dernier par
Bubu le mardi 20 septembre 2022 à 17:50, modifié 2 fois.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"