Utiliser une police personnalisée avec nSDL
Re: Utiliser une police personnalisée avec nSDL
Ok, merci beaucoup à toi, c'est super, en attendant (peut être.... ) un portage de SDL_ttf
Bonjour
-
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 975
- Inscription: 07 Nov 2013, 20:18
- Localisation: Paris V
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: MP* Lycée Henri IV
Re: Utiliser une police personnalisée avec nSDL
Il serait possible que tu crées un petit utilitaire qui prend en paramètre la largeur et la hauteur d'un caractère, et qui revoie une image qui contient une grille rose comme tu as mis en exemple dans ton .zip? Ca serait parfait pour pouvoir créer seulement quelques caractères avec une taille différente que celle proposée
Bonjour
-
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 975
- Inscription: 07 Nov 2013, 20:18
- Localisation: Paris V
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: MP* Lycée Henri IV
Re: Utiliser une police personnalisée avec nSDL
Ouaip, je peux faire ça si tu veux. Pas aujourd'hui par contre, demain peut-être
-
Lepzulnag
Niveau 9: IC (Compteur Infatigable)- Messages: 151
- Inscription: 02 Aoû 2012, 21:15
- Localisation: Bretagne
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: M2 Maths
Re: Utiliser une police personnalisée avec nSDL
Ah super, merci beaucoup!
Ça serait vraiment pratique
Ça serait vraiment pratique
Bonjour
-
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 975
- Inscription: 07 Nov 2013, 20:18
- Localisation: Paris V
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: MP* Lycée Henri IV
Re: Utiliser une police personnalisée avec nSDL
Voilà : http://tiplanet.org/forum/archives_voir.php?id=46446.
Faut lancer l'exe depuis ta console msys, pas double-cliquer dessus(cf. readme).
Je pense que tu aurais été capable de faire ce petit utilitaire tout seul (j'utilise juste la SDL), c'est pourquoi je t'ai laissé le code source
Faut lancer l'exe depuis ta console msys, pas double-cliquer dessus(cf. readme).
Je pense que tu aurais été capable de faire ce petit utilitaire tout seul (j'utilise juste la SDL), c'est pourquoi je t'ai laissé le code source
-
Lepzulnag
Niveau 9: IC (Compteur Infatigable)- Messages: 151
- Inscription: 02 Aoû 2012, 21:15
- Localisation: Bretagne
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: M2 Maths
Re: Utiliser une police personnalisée avec nSDL
Merci !!
En fait, c'est que je ne savais pas me servir des arguments de la fonction main
Et je ne connaissais pas SaveBMP, c'est cool
En fait, c'est que je ne savais pas me servir des arguments de la fonction main
Et je ne connaissais pas SaveBMP, c'est cool
Bonjour
-
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 975
- Inscription: 07 Nov 2013, 20:18
- Localisation: Paris V
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: MP* Lycée Henri IV
Re: Utiliser une police personnalisée avec nSDL
Pour info la dernière contribution de Legimet au SDK permet de charger un fichier TTF avec la bibliothèque FreeType, et afficher les caractères en tant qu'image, si ça peut vous aider: https://github.com/OlivierA/Ndless/pull/4
-
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)- Messages: 204
- Inscription: 30 Déc 2004, 00:00
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: N/A
Re: Utiliser une police personnalisée avec nSDL
Merci Extended mais je ne vois pas comment il faut faire pour l'installer
Sinon, Lepzulnag, j'ai vu que tu as adapté la fonction getStringHeight ou un truc comme ça, je voulais te demander si tu pouvais adapter aussi pour la largeur... Parce que j'ai besoin de centrer mon texte, et je n'y arrive pas avec la simple fonction stringWidth de départ
Sinon, Lepzulnag, j'ai vu que tu as adapté la fonction getStringHeight ou un truc comme ça, je voulais te demander si tu pouvais adapter aussi pour la largeur... Parce que j'ai besoin de centrer mon texte, et je n'y arrive pas avec la simple fonction stringWidth de départ
Bonjour
-
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 975
- Inscription: 07 Nov 2013, 20:18
- Localisation: Paris V
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: MP* Lycée Henri IV
Re: Utiliser une police personnalisée avec nSDL
Bon ya pas mal de truc à dire pour ton problème de centrage de police et le chat est plein alors je réponds ici
Ta fonction de dessin c'est celle-là :
Le premier problème, c'est que score_txt n'est pas égal à score pour score = 0.
En effet tu définis score_txt comme suit :
Ce qui équivaut à dire que score_txt = "", et non "0" comme tu voudrais qu'il le soit.
Donc première chose à changer : initialiser correctement score_txt et (c'est optionnel mais ça t'aurait permis de comprendre tout de suite) remplacer ta ligne de dessin du score par :
Comme ça tu es sûr que la chaîne que tu centres est la même que celle que tu dessines.
La seconde chose qui fait que ton score n'est pas toujours bien centré, c'est la façon dont tu as créé tes chiffres. Le '1' notamment (je n'ai pas regardé les autres lettres, mais le '0' et le '2' ne sont pas à changer). Quand tu créées ta police, je te conseille de soit mettre une marge de 1 pixel au début de chaque caractère, soit de ne mettre aucune marge (de telle sorte que le bord gauche du caractère touche la bordure, mais pas forcément le bord droit) et dans ce cas d'utiliser la fonction nSDL_SetFontSpacing(horizontalSpacing, verticalSpacing) pour ne pas que tes caractères se 'collent'.
Ta fonction de dessin c'est celle-là :
- Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, "%d", score);
Le premier problème, c'est que score_txt n'est pas égal à score pour score = 0.
En effet tu définis score_txt comme suit :
- Code: Tout sélectionner
char score_txt[5] = {0};
Ce qui équivaut à dire que score_txt = "", et non "0" comme tu voudrais qu'il le soit.
Donc première chose à changer : initialiser correctement score_txt et (c'est optionnel mais ça t'aurait permis de comprendre tout de suite) remplacer ta ligne de dessin du score par :
- Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, score_txt);
Comme ça tu es sûr que la chaîne que tu centres est la même que celle que tu dessines.
La seconde chose qui fait que ton score n'est pas toujours bien centré, c'est la façon dont tu as créé tes chiffres. Le '1' notamment (je n'ai pas regardé les autres lettres, mais le '0' et le '2' ne sont pas à changer). Quand tu créées ta police, je te conseille de soit mettre une marge de 1 pixel au début de chaque caractère, soit de ne mettre aucune marge (de telle sorte que le bord gauche du caractère touche la bordure, mais pas forcément le bord droit) et dans ce cas d'utiliser la fonction nSDL_SetFontSpacing(horizontalSpacing, verticalSpacing) pour ne pas que tes caractères se 'collent'.
-
Lepzulnag
Niveau 9: IC (Compteur Infatigable)- Messages: 151
- Inscription: 02 Aoû 2012, 21:15
- Localisation: Bretagne
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: M2 Maths
Re: Utiliser une police personnalisée avec nSDL
Lepzulnag a écrit:Bon ya pas mal de truc à dire pour ton problème de centrage de police et le chat est plein alors je réponds ici
Ta fonction de dessin c'est celle-là :
- Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, "%d", score);
Le premier problème, c'est que score_txt n'est pas égal à score pour score = 0.
En effet tu définis score_txt comme suit :
- Code: Tout sélectionner
char score_txt[5] = {0};
Ce qui équivaut à dire que score_txt = "", et non "0" comme tu voudrais qu'il le soit.
Donc première chose à changer : initialiser correctement score_txt et (c'est optionnel mais ça t'aurait permis de comprendre tout de suite) remplacer ta ligne de dessin du score par :
- Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, score_txt);
Comme ça tu es sûr que la chaîne que tu centres est la même que celle que tu dessines.
La seconde chose qui fait que ton score n'est pas toujours bien centré, c'est la façon dont tu as créé tes chiffres. Le '1' notamment (je n'ai pas regardé les autres lettres, mais le '0' et le '2' ne sont pas à changer). Quand tu créées ta police, je te conseille de soit mettre une marge de 1 pixel au début de chaque caractère, soit de ne mettre aucune marge (de telle sorte que le bord gauche du caractère touche la bordure, mais pas forcément le bord droit) et dans ce cas d'utiliser la fonction nSDL_SetFontSpacing(horizontalSpacing, verticalSpacing) pour ne pas que tes caractères se 'collent'.
En effet, je vais essayer de changer tout ça, merci
Sinon, j'ai bien fait une marge de un pixel en créant ma police. ET pourquoi mon "1" ne va pas?...
Bonjour
-
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 975
- Inscription: 07 Nov 2013, 20:18
- Localisation: Paris V
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: MP* Lycée Henri IV
43 messages
• Page 3 sur 5 • 1, 2, 3, 4, 5
Retourner vers Native: Ndless, Linux, ...
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 11 invités