lucius a écrit : ↑dimanche 4 septembre 2022 à 15:40
C'est à dire? J'ai un peu de mal à comprendre le sens de votre problème si vous avez créé une API pour cela.
Tutoie moi s'il te plait.
J'ai crée une API il y a plusieurs années, mais je ne sais pas m'en servir.
Pourtant dans mon code, je cherche à être verbeux.
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"
Ayant une maladie et des soucis en plus, on m'a pré-diagnostiqué Asperger et j'ai eu une confirmation assez incertaine depuis. Résultat, je continue de douter.
Rien de tout ça, c'est un ensemble de packages Java.
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"
Pour java, navré mais Java j'y ai renoncé rapidement lorsque j'ai découvert que c'était une usine à gaz (surtout avec Java EE) avec eclipse. Donc je ne sais pas.
Même si java a été conçu pour de l'embarqué au départ, cela a été dévoyé pour faire des app pour Windows, du web... Avec des dizaines d'outils instables complémentaires (Maven, Maven et encore Maven sans compter hibernate) à utiliser.
Vive le VHDL!
Ayant une maladie et des soucis en plus, on m'a pré-diagnostiqué Asperger et j'ai eu une confirmation assez incertaine depuis. Résultat, je continue de douter.
Le langage n'a pas vraiment d'importance, hormis ses performances.
Oui, j'ai fait un petit programme de Sudoku en C++ pour windows.
Etant enfant, je programmais en BASIC sur Apple IIc. Après je me suis orienté vers l'assembleur 6502. Whoua !
Ensuite, à la fac, (j'étais en cursus Math-Info), j'étais là pour apprendre des algorithmes, pas des langages.
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"
Bon depuis ce matin, j'essaie d'utiliser mon API java pour remplir une texture de texte.
C'est fort : je ne cherche qu'a rendre un mot, "niviz" qui n'est pas une marque mais un pseudo qu'on utilise moi et mon partenaire.
Résultat, retour chariot sur le z. Donc le texte fait 2 lignes. Et le Z est à la ramasse sur une seconde ligne.
Je crois que je vais reprogrammer entièrement cette classe.
L'ideal :
Préciser le texte à afficher
Préciser la police.
Préciser la taille du texte en pixels. Après cela peut-être l'inverse : si le texte est trop petit, c'est la texture qu'il faut agrandir.
Rendre finalement le texte, via une position centrale, un angle, une mise à l'échelle, et une couleur.
.
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"
Et puis dans l'API actuelle, quand je traçais du texte, je ne supprimais pas les textures contenant du texte.
Bref, il est temps de tout recommencer.
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"
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"
Jiheu a écrit : ↑mercredi 7 septembre 2022 à 1:14
Vos ados autistes seraient-ils intéressés de programmer un robot ?
C'est bouleversant.
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"
Le garbage collector (ramasse-miettes), ne fait pas tout pour supprimer les ressources qui ne sont plus utilisées.
Le native code, code natif, dérivé de C ou de C++, n'est pas géré par le ramasse-miettes.
Par exemple, une texture ou un shader OpenGL sous Java doit être détruit manuellement.
Donc si l'on ne le fait pas, on a des fuites mémoires et de performances. Ce qui peut engendrer un plantage pour manque de mémoire, ou un fonctionnement dégradé de la machine.
Pour ces langages avec ramasse-miettes, il faut créer des destructeurs artificiels, mais ils sont dangereux : les ressources de l'objet sont libérées mais l'objet existe encore.
Concernant la gestion des ensembles polyphoniques : non ce n'est toujours pas bon.
Il y avait une idiotie dans le code, qui faisait que chaque instance était au même endroit, stockées au même endroit.
Une table de hash qui stockait les instances de sons au même endroit.
Or il y peut y avoir plusieurs instances d'un même son en même temps !
Modifié en dernier par Bubu le vendredi 23 septembre 2022 à 17:33, modifié 4 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"
C'est loin d'être une nouvelle! Même en C#, avec les finaliseurs (des destructeurs) on doit souvent mettre la méthode Dispose.
Ayant une maladie et des soucis en plus, on m'a pré-diagnostiqué Asperger et j'ai eu une confirmation assez incertaine depuis. Résultat, je continue de douter.
Je précise.
Quand on programme, on a un objet this. C'est celui qu'on utilise.
En fonction des programmes, il y a plusieurs appellations, et c'est le vide. Ça peut être NULL, Null ou null.
En gros mon imposture était de dire qu'un objet (informatique) n'est rien.
Je précise qu'on ne peut pas assigner la valeur null à this, quel que soit le langage.
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"