Je pige pas les fontes / tailles de fontes

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
drfloyd
Messages : 220
Inscription : mar. 21/août/2007 13:30
Contact :

Je pige pas les fontes / tailles de fontes

Message par drfloyd »

Je suis de retour ! Grosse surprise en faisant tourner mon jeu sur un autre pc !!!!!

avec drawtext, en fonction du PC sur lequel je fais tourner mon programme, la taille et la forme de la police varie !!!!! hu ?

Comment faire pour avoir une taille de police identique quelque soit le PC ??????
Je veux juste afficher du texte, peut etre dans 2 tailles différentes, mais c'est tout, mais un truc standard qui ne varie pas.

j'ai tenté de charger ma propre fonte (stockée dans un dossier DATA)

LoadFont(0, "DATA/fonte8b.Ttf",8)

mais ca donne rien....

merci à vous !
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Je pige pas les fontes / tailles de fontes

Message par Ollivier »

Résolution identique ?
OS semblable ?
Version d'OS semblable ?
Fonte intégrée (data, ou fichier type DAT) ?
Version PB ?

Il faut plus d'infos...
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Je pige pas les fontes / tailles de fontes

Message par Ar-S »

A mon avis, il faut que tu fasses attention aux DPI, regarde la doc coté DesktopResolutionX(), DesktopResolutionY(), DesktopScaledY(), DesktopUnscaledX(), DesktopUnscaledY()
Ensuite recherche sur le fofo les topic concernant DPI AWARE
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Je pige pas les fontes / tailles de fontes

Message par MLD »

Salut a tous
Je pencherais plus sur une résolution différente de l'écran.
dans ce cas regarde avec GetSystemMetrics_(#SM_CXSCREEN) et GetSystemMetrics_(#SM_CYSCREEN). C'est un grand classique de la programmation.
Tenir compte de la résolution d'écran,et du DPI
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Je pige pas les fontes / tailles de fontes

Message par Marc56 »

(aparté)
La version API n'est utile que si le DPI n'est pas à 100%
Dans les autres cas, PB possède une fonction interne.
Depuis PB (5.7?) on peut obtenir le facteur d'échelle avec DesktopResolutionX()
(à condition d'avoir coché l'option dans le compilateur)

Code : Tout sélectionner

Debug "API: " + GetSystemMetrics_(#SM_CXSCREEN) + " x " + GetSystemMetrics_(#SM_CYSCREEN)

ExamineDesktops() 
Debug "PB : " + DesktopWidth(0) + " x " + DesktopHeight(0)
À 100%

Code : Tout sélectionner

API: 1920 x 1080
PB : 1920 x 1080
À 125%

Code : Tout sélectionner

API: 1536 x 864
PB : 1920 x 1080
drfloyd
Messages : 220
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Je pige pas les fontes / tailles de fontes

Message par drfloyd »

Mais c'est quoi ce bordel :mrgreen:

y a pas moyen d'afficher du texte avec drawtext sans gérer tout ça ?

La police par defaut de PURE BASIC n'est pas réglable en taille ? Elle me convient mais elle ets trop grosse par rapport à la faible définition de mon jeu.

je n'ai besoin de rien de special : une fonte ! Au pire genre en taille 6 8 ou 10....
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Je pige pas les fontes / tailles de fontes

Message par Zorro »

@drfloyd , lorsque je te lis, je retrouve tes propos sur tes tests a propos des Basics sur ton site .....

tu compares des basics actuels avec ceux d’antan , et tu compares les basics de different types ...

un truc qu'il faut que tu comprennes, le Purebasic (mais c'est pas le seul) est relativement bas niveau
donc, ne t'offusques pas par exemple, si tu ne trouve point de fonction de rotation sur la bibliotheque image

car avec le Purebasic, tu as en fait les moyen de te fabriquer ta propre routine de rotation ... et c'est super rapide...
tout pareil afficher plus de 1000 sprites ,ne pose aucun problèmes de lenteur ...

avec Purebasic (version complete) on a accès au API windows .. donc tu peut aussi y faire appel pour accélérer certains trucs ...
ou pour changer la taille d'une fonte ...
ça dépasse largement le cadre de la Doc Purebasic , puisqu'il faut alors plonger dans la Doc Microsoft des APIs....

ne compare pas le Purebasic par exemple avec Dark Basic .. ou autre du même type ...
qui sont des basics qui cumulent des fonctions toutes faites
avec le Purebasic, je me fabrique des fonctions pour AGK2 par exemple (via DLL)

un membre du forum anglais a fait un code qui utilise le moteur 3d du DarkBasic ... (payant)
etc... je pourrai te donner pleins d'exemple de ce genre

avec un peut d'acharnement, tu pourrai te faire ton propre langage avec Purebasic ..

tu es trop habitué aux langage basics "prefabriqué" avec des fonctions toute faites... comme le STOS, AMOS, DarkBAsic,AGK etc..
là , avec Purebasic, les fonctions qui te manque, tu peut te les coder ... (apres, je dis pas que c'est simple lorsque tu n'as jamais fait ça )

se faire un interpreteur d'un langage xx ou yy est tres simple avec Purebasic
on peut meme se faire un Pseudo compilateur sans trop d'effort...
il faut que tu vois le langage, comme un assembleur évolué .... (d'ailleurs on peut aussi coder en assembleur directe dans le listing)
tu disposes de quasi toutes les briques de base pour te construire ce que tu veux ...

si tu veux te faire une fonction DrawTex() , avec comme paramètre la taille d'une fonte, tu peux te le faire ...
ça demande un peut de recherche avec les Apis .. mais c’est loin d’être impossible

tu peux te faire tes propres DLL , ou librairies de fonctions, que tu utilises a loisir
soit sous forme de DLL , ou de LIB ou bien de "Modules"



ne part pas perdant , si deja tu donnais un peut de code, on (certains ici) pourrai voir ou est le problème
bref, surtout ne commet pas l'erreur de coller une etiquettes sur le Purebasic sans avoir vraiment testé !

ps: tu n'es pas le seul a etre un Vieux du codage , perso j'ai bientot 55 ans , et je code aussi depuis le Zx81 ... (que j'ai encore)
ici pas mal de membres sont aussi des vieux cons , qui viennent de "l'ancien" monde du codage
et avons aussi connu hebdogociel et StMag..... certains viennent meme du monde de la Demo sur Amiga ...

bref, ne pense pas avoir affaire a des petits jeunes, comme le bonjours que tu as lancé sur un autre message ;)

ici on echange du code, lorsqu'on a un probleme, n'hesite pas ;)


pour ton probleme de taille de fonte, jette un oeil ici :
https://www.purebasic.fr/french/viewtop ... te#p158897

la fonction recherche du forum fonctionne aussi :)

ps: dans la doc la fonction loadFont() permet de determiner la taille d'une fonte ;)

Code : Tout sélectionner

LoadFont (0, "Courier", 15)            ; Load Courrier Font, Size 15
LoadFont (1, "Arial", 24)              ; Load Arial Font, Size 30


ps lorsque tu as un soucis avec une "commande" tu clicque dessus pour poser le curseur sur le mot
ou tu surligne le mot .. et tu appuis sur F1

ça ouvre la doc sur le mot en question ....
tres pratique beaucoup d'entre nous codent par simple copié-collés ;)
Avatar de l’utilisateur
Naheulf
Messages : 193
Inscription : dim. 10/mars/2013 22:22
Localisation : France

Re: Je pige pas les fontes / tailles de fontes

Message par Naheulf »

T'as aussi la possibilité d'exporter ta police sous forme d'images et d'utiliser ces images pour afficher les lettres composant le texte. Au moins ce seras à la taille de ton choix au pixel près. (Mais tu devra te passer des fonctions natives pour tus les textes affichés)
vurvur
Messages : 60
Inscription : ven. 29/août/2014 19:52

Re: Je pige pas les fontes / tailles de fontes

Message par vurvur »

drfloyd a écrit :Je suis de retour ! Grosse surprise en faisant tourner mon jeu sur un autre pc !!!!!

avec drawtext, en fonction du PC sur lequel je fais tourner mon programme, la taille et la forme de la police varie !!!!! hu ?

Comment faire pour avoir une taille de police identique quelque soit le PC ??????
Je veux juste afficher du texte, peut etre dans 2 tailles différentes, mais c'est tout, mais un truc standard qui ne varie pas.

j'ai tenté de charger ma propre fonte (stockée dans un dossier DATA)

LoadFont(0, "DATA/fonte8b.Ttf",8)

mais ca donne rien....

merci à vous !
Essaie de rajouter la ligne suivante après ton LoadFont et avant le drawText:

DrawingFont(FontID(0))
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Je pige pas les fontes / tailles de fontes

Message par microdevweb »

Assez d'accord avec zorro, Pb est bas niveau tout comme le c. Avoir le même comportement quel que soit la machine et surtout l'os est difficile. Il vaut mieux alors passer par un langage comme Java qui normalement gère cela de manière automatique.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
drfloyd
Messages : 220
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Je pige pas les fontes / tailles de fontes

Message par drfloyd »

vurvur a écrit :
drfloyd a écrit :Je suis de retour ! Grosse surprise en faisant tourner mon jeu sur un autre pc !!!!!

avec drawtext, en fonction du PC sur lequel je fais tourner mon programme, la taille et la forme de la police varie !!!!! hu ?

Comment faire pour avoir une taille de police identique quelque soit le PC ??????
Je veux juste afficher du texte, peut etre dans 2 tailles différentes, mais c'est tout, mais un truc standard qui ne varie pas.

j'ai tenté de charger ma propre fonte (stockée dans un dossier DATA)

LoadFont(0, "DATA/fonte8b.Ttf",8)

mais ca donne rien....

merci à vous !
Essaie de rajouter la ligne suivante après ton LoadFont et avant le drawText:

DrawingFont(FontID(0))

oui oui bien sur c'est ce que je fais...
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Je pige pas les fontes / tailles de fontes

Message par case »

si je ne dit pas de bêtises pour charger une font elle doit être enregistrée dans le système

Code : Tout sélectionner

if registerfontfile("DATA/fonte8b.Ttf")
  LoadFont(0,"fonte8b",8)
endif

devrait fonctionner
ImageImage
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Je pige pas les fontes / tailles de fontes

Message par Zorro »

ceci :) mais faut avoir acces aux apis

Code : Tout sélectionner


; code pour charger une fonte présente dans le dossier de l'appli et non installé dans le systeme /Fontes
AddFontResource_(GetCurrentDirectory()+"amstrad-accent.fnt")
SendMessage_(#HWND_BROADCAST, #WM_FONTCHANGE, 0, 0)
FontID1 = LoadFont(0,"Amstrad CPC accents",8)
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Je pige pas les fontes / tailles de fontes

Message par case »

@zorro pourquoi passe tu encore par l'api alors qu'il y a la fonction RegisterFontFile()

bon j'avoue je ne le savais pas avant d'avoir regarder a nouveau la doc suite a ce post :mrgreen:

Syntaxe

Resultat = RegisterFontFile(Fichier$)
Description

Enregistre un fichier de police en vue d'être utilisé avec la commande LoadFont().
Toutes les polices contenues dans le fichier seront alors disponibles.
Arguments

Fichier$ Le fichier contenant les polices.
Le fichier doit être au format TrueType.

Valeur de retour

Renvoie une valeur non nulle si le fichier a été enregistré correctement.
Remarques

Le fichier de police est inscrit pour le programme en cours. Cela signifie que la ou les polices ne sont pas accessibles par les autres programmes.
Le fichier est désinscrit lorsque le programme se termine.
Aucun changement dans le système d'exploitation n'est fait par cette commande.

ImageImage
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Je pige pas les fontes / tailles de fontes

Message par Zorro »

ha bah pareil .... :)


en meme temps j'ai de vieux code qui utilisent encore l'api pour recup la resolution de l'ecran
alors que la bibliotheque Desktop() existe maintenant ..... :mrgreen:
Répondre