[RESOLU] Affichage d'un texte (openpreferences)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

[RESOLU] Affichage d'un texte (openpreferences)

Message par blendman »

salut

Voilà, pour les quêtes de mon jeu, j'utilise un truc très simple, genre fichier ini (pour mes test).

En gros, ça ressemble à ça :
texte.ini :

Code : Tout sélectionner

[texte]
texte1 = "salut !"+chr(10)+"comment vas-tu ?"
Et je charge le fichier de cette manière :

Code : Tout sélectionner

;{ ********************* variables ******************************
Global inscreen = 1
Global quit = 0
ShowCursor_(1)
;}

Procedure DrawTextEX(x.f,y.f,text$, couleur.i=0,lineHeight.w=19)
 Protected nbLine.i=1 ; il y a au moins une ligne 
  nbLine + CountString(text$,Chr(10)) ; Nombre de "saut" , au moins 1
   For i = 1 To nbLine
    Line$ = StringField(text$,i,Chr(10)) ; on découpe entre les chr(10)
    DrawText(x, y + ( (i-1)*lineHeight), Line$, couleur);,$0,$FFFFFF) ; On affiche , et on ajuste suivant l'itérateur 'i' et la hauteur de ligne
  Next
EndProcedure

Procedure gestion_souris()
    mx = WindowMouseX(0):my = WindowMouseY(0)
    If inscreen = 1
      If mx>= WindowWidth(0)-4 Or my>= WindowHeight(0)-4 Or mx<=1 Or my<=1
        inscreen = 0
        ReleaseMouse(1) ; on libère la souris
      EndIf     
    ElseIf (mx <WindowWidth(0)-4 And my < WindowHeight(0)-4 And mx > 0 And my > 0)
        ReleaseMouse(0)
        MouseLocate(mx,my)
        inscreen = 1     
    EndIf
EndProcedure

OpenPreferences("texte.ini")
PreferenceGroup("texte")
txt$ = ReadPreferenceString("texte1","") 
ClosePreferences()

InitSprite() : InitKeyboard() :InitMouse()

OpenWindow(0,0,0,400,300,"test Texte",#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget)
OpenWindowedScreen(WindowID(0),0,0,400,300,0,0,0)

Repeat
  ClearScreen(RGB(125,125,125))
  event = WindowEvent()
  ExamineMouse()
  ExamineKeyboard()
  
  If MouseButton(#PB_MouseButton_Left)
    quit = 1
  EndIf
  gestion_souris()
  StartDrawing(ScreenOutput())
  DrawTextEX(50,50,txt$,RGB(255,255,255)) ; <<<<<<<<<<<<<<<<< pas bon
  DrawTextEX(50,120,"salut !"+Chr(10)+"comment vas-tu ?",RGB(255,255,255))    ; <<<<<<<<<<<<<<<<< bon
  StopDrawing()  
  FlipBuffers()
Until event = #PB_Event_CloseWindow Or quit = 1 Or KeyboardPushed(#PB_Key_Escape)   
Le problème est que ça m'affiche :
"salut !"+chr(10)+"comment vas-tu ?"

et je voudrais que cela affiche :
salut !
comment vas-tu ?

vous savez comment je pourrais faire ça, car lorsque l'on entre directement (dans drawtextEx()) : "salut !"+chr(10)+"comment vas-tu ?"
ça affiche bien :
salut !
comment vas-tu ?

vous savez comment je pourrais afficher correctement le texte (comme lorsque je le note en direct) ?

Merci :)
Dernière modification par blendman le dim. 15/mai/2011 12:20, modifié 1 fois.
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Re: Affichage d'un texte (openpreferences)

Message par Atomo »

Il suffit de remplacer dans ta chaîne les mots "chr(10)" par des vrai chr(10) comme ceci :

Code : Tout sélectionner

String$ = ReplaceString(String$, "chr(10)", Chr(10))
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Affichage d'un texte (openpreferences)

Message par blendman »

ah yes !!
merci beaucoup :)
Avatar de l’utilisateur
Ar-S
Messages : 9546
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Affichage d'un texte (openpreferences)

Message par Ar-S »

héhé des fois on pense pas aux choses toutes simples :)
~~~~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
case
Messages : 1547
Inscription : lun. 10/sept./2007 11:13

Re: Affichage d'un texte (openpreferences)

Message par case »

dans ton fichier ini tu peux aussi sauver directement le chr(10) au lieu de noter chr(10) sauf si tu l’écrit a la main bien sur...

CreatePreferences("test.ini")
PreferenceGroup("textes")
WritePreferenceString("texte1","Salut!"+Chr(10)+"Comment ca vas ? ")
ClosePreferences()
ImageImage
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Affichage d'un texte (openpreferences)

Message par blendman »

case a écrit :dans ton fichier ini tu peux aussi sauver directement le chr(10) au lieu de noter chr(10) sauf si tu l’écrit a la main bien sur...
CreatePreferences("test.ini")
PreferenceGroup("textes")
WritePreferenceString("texte1","Salut!"+Chr(10)+"Comment ca vas ? ")
ClosePreferences()
je l'écris à la main, pour l'instant, car c'est pour des tests de texte (genre quête ou infos diverses).

Mais j'ai remplacé chr(10) par# c'est plus simple du coup :D.
héhé des fois on pense pas aux choses toutes simples
oui, en plus, je ne connaissais pas ReplaceString() et c'est plutôt pratique :).

Merci en tout cas
Répondre