π
<-

Utiliser une police personnalisée avec nSDL

C, C++, ASM...

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 04 May 2014, 15:15

Tu as fait une marge de 1 pixel sur la droite, et non sur la gauche.
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 04 May 2014, 15:19

Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 04 May 2014, 15:21

Mais je pense que mon "1" n'est pas au bon endroit, de toute façon pour bien faire, il faudrait que ce soit possible que les caractères n'aient pas tous les même largeur, mais ça doit beaucoup plus compliqué à programmer non?
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 04 May 2014, 15:23

En effet je me suis mal exprimé ^^
Tu as bien fait une marge de 1 pixel sur la gauche pour tous tes chiffres, sauf le '1'. Tu dois le coller sur la gauche, et non sur la droite, en laissant une marge de 1 pixel.

pierrotdu18 wrote:Mais je pense que mon "1" n'est pas au bon endroit, de toute façon pour bien faire, il faudrait que ce soit possible que les caractères n'aient pas tous les même largeur, mais ça doit beaucoup plus compliqué à programmer non?


La fonction nSDL_LoadFont aurait pu être encore mieux faite et gérer ton cas, mais je n'ai pas voulu trop changer en créant nSDL_LoadCustomFont. Tu peux avoir des caractères plus petits, mais la convention est qu'ils soient collés sur la gauche.
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby matref » 04 May 2014, 15:25

Dans ce cas il faut dire "laisser une marge sur la droite", puisqu'il faut que la marge elle-même soit sur la droite, c'est-à-dire le nombre lui-même collé à gauche.
User avatar
matref
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 25%
 
Posts: 506
Joined: 11 Dec 2011, 03:08
Location: France, Châteaurenard
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MPSI

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 04 May 2014, 15:26

matref wrote:Dans ce cas il faut dire "laisser une marge sur la droite", puisqu'il faut que la marge elle-même soit sur la droite.


Oui c'est ça, il faut "laisser une marge sur la droite" de taille quelconque, et une marge sur la gauche de 1 pixel. (pas plus)
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 04 May 2014, 15:30

Ca marche parfaitement bien, merci beaucoup! :)
J'ai une dernière question : pour faire comme dans le vrai jeu, j'aimerais faire une police avec les contours noirs et un remplissage blanc, comment je pourrais faire?... C'est un peu "contraire" au truc des bits 1 ou 0 non?
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 04 May 2014, 16:24

Ce que je te conseille de faire, c'est de créer ta propre fonction pour charger ta police. Premièrement elle n'a que dix caractères, ce serait bête de créer les 246 autres. Ensuite tu as raison, la fonction actuelle ne permet pas d'avoir une police poly-chromatique.

---> Création de la police poly-chromatique
Comme c'est une image avec plusieurs couleurs, tu utilises simplement ImageToNTI pour obtenir l'image de chacun de tes caractères. Définis-toi une couleur transparente (j'utilise souvent R=255,G=0,B=0).

---> Chargement de la police
Tu créées ta propre fonction. Elle sera plus simple, heureusement.
Le but est de créer et remplir une structure nSDL_Font :
Code: Select all
struct nSDL_Font {
SDL_Surface *chars[256];
int char_width[256];
int hspacing;  // set to 0
int vspacing;  // set to 1
int monospaced; // set to SDL_FALSE
}


Pour les caractères que tu n'utilises pas, mets NULL comme surface et 0 comme largeur ; sinon tu utilises nSDL_LoadImage et ta structure NTI.

Ensuite tu l'utilises ! :)
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 04 May 2014, 17:02

Ah oui ok, mais après, une fois que j'ai ma police qui contient des images en NTI, comment je peux afficher du texte?...
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 04 May 2014, 17:36

Avec nSDL_DrawStringCF :D Tout ce que fait cette fonction, c'est lire la chaine de caractères passée en argument, et dessiner à l'écran la surface correspondante à chaque caractère.

Et ta police ne contient pas des images en NTI, elle contient des surfaces qui ont été obtenues par des images au format NTI (un caractère = une image NTI --> tu créées la surface de ton caractère grâce à nSDL_LoadImage). Il te faut juste remplir la structure nSDL_Font avec tes caractères-surfaces, et dans ton cas ça ne va pas être très dur ;)
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

PreviousNext

Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 12 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1503 utilisateurs:
>1485 invités
>11 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)