Page 1 sur 1

Position des éléments grahique en pourcentage

Publié : dim. 20/juil./2008 13:31
par Anonyme
je ne met pas se code dans la catégorie jeux , car on peut l'utilisé aussi pour des applications basique.

ce code permet de placer des gadgets/sprites/textes/etc... avec des pourcentage , peut importe la résolution de l'écran ou la taille de la fenetre , un coup de moulinette dans les macros , il convertit les pourcentage en position sur l'écran ou la fenêtre !

Code : Tout sélectionner

Global Resolution_Screen_X.l 
Global Resolution_Screen_Y.l

Macro Percent_X(percent)
(percent * Resolution_Screen_X) / 100
EndMacro

Macro Percent_Y(percent)
(percent * Resolution_Screen_Y) / 100
EndMacro

Macro DefineScreenResolution(x,y)
Resolution_Screen_X = x
Resolution_Screen_Y = y
EndMacro
Voici un exemple d'utilisation :

Code : Tout sélectionner

#WIN_SIZEX = 150
#WIN_SIZEY = 480

DefineScreenResolution(#WIN_SIZEX,#WIN_SIZEY)

OpenWindow(0,0,0,#WIN_SIZEX,#WIN_SIZEY,"BOUTON TEST")
If CreateGadgetList(WindowID(0))
; On place le bouton à 50% de la fenetre mois sa taille divisé par 2 pour un centrage parfait.
ButtonGadget(#PB_Any,Percent_X(50)-50,Percent_Y(50)-16,100,32,"Bouton centré!")
EndIf 

Repeat
Until WindowEvent()=#PB_Event_CloseWindow
Donc 100% est égale à la resolution de l'écran ou de la fenetre !
plus besoin de se prendre le choux a faire les calcul :D

Publié : lun. 21/juil./2008 9:54
par Kwai chang caine
Bonne idée :wink:
Merci pour le code

Re: Position des éléments grahique en pourcentage

Publié : lun. 21/juil./2008 11:45
par beauregard
Cpl.Bator a écrit :Donc 100% est égale à la resolution de l'écran ou de la fenetre ! plus besoin de se prendre le choux a faire les calcul :D
merci :) Cela me permet également de voir l'utilité réelle d'une macro, ton code est donc également un bon tutorial :)

Code : Tout sélectionner

#WIN_SIZEX = 150
#WIN_SIZEY = 480

DefineScreenResolution(#WIN_SIZEX,#WIN_SIZEY)

OpenWindow(0,0,0,#WIN_SIZEX,#WIN_SIZEY,"BOUTON TEST")
If CreateGadgetList(WindowID(0))
  ButtonGadget(#PB_Any, Percent_X(50)-(100/2), Percent_Y(50)-(32/2), 100, 32,"Bouton centré!")
EndIf

Repeat
Until WindowEvent()=#PB_Event_CloseWindow