Page 1 sur 1

Retour automatique a la ligne (texte) dans un ecran

Publié : lun. 01/sept./2008 17:37
par Kayne
Bonjour,
Alors c'est assez dur a expliquer donc demandez des précisions si je suis pas clair. Je voudrais dans un écran pouvoir mettre du texte dans un sprite et que le texte aille a la ligne tout seul comme dans word (sans casser les mots).

Publié : lun. 01/sept./2008 20:43
par case
facile :)

Code : Tout sélectionner

; x: position x de depart
; y: position y de depart
; t$: chaine a afficher
; w: largeur de la zone d'affichage

procedure showtext(x,y,t$,W) 

startdrawing(screenoutput()) ; sur ecran a modifier en fonction 
;----------------------------------
xpos=0 ; position relative a x
ypos=0 ; position relative a y 
;-----------------------------------
fields=countstring(t$," ") +1 ; on compte le nombre de mots dans la phrase

for a=1 to fields   ; pour chaque mots 
mot$=stringfield(t$,a," ") ; prend le mot actuel
mw=textwidth(mot$) ; calcul la largeur du mot en pixels
if xpos+mw >w        ; si la position actuelle + la largeur du mot est superieur a la largeur d'affichage
  ypos=ypos+textheight(mot$) ; on descend d'une ligne
  xpos=0                                ; on revien au debut de la ligne
  drawtext (x+xpos,y+ypos,mot$) ; on ecrit le mot
  xpos=xpos+mw+textwidth(" "); on ajoute la taille du mot a la position actuelle et un espace
else ; le mot entre dans la limite
 drawtext (x+xpos,y+ypos,mot$) ; on ecrit le mot
  xpos=xpos+mw+textwidth(" "); on ajoute la taille du mot a la position actuelle et un espace
endif
next
stopdrawing()

endprocedure
normalement ca doit fonctionner, mais je n'ai pas testé je n'ai pas de pc avec pure basic ici

par contre je ne vérifie pas si un mot n'entre pas du tout dans la zone au quel cas il fraudais peut être le découper...

ni la hauteur d'ailleur :)

a toi d'implementer une limite basse et un systeme de scrolling peut etre

Publié : jeu. 04/sept./2008 18:19
par Kayne
Excellent ce que t'as fait c'est exactement ce que je recherchait
merci beaucoup :D :D