Bonjour les amis,
J'aimerais implanter une fonctionnalité dans mon jeu, un truc tout con mais qui a son utilité dans un Jeu basé sur le texte.
Avoir une fenêtre de texte consultable et scrollable où serait enregistré tous les dialogues passés du jeu.
J'ai commencé a bidouiller dans mon coin, rien de bien foufou pour le moment.
Initialement mon idée c'était de faire un GUI avec un Label.
J'ai refait une fonction Say que j'ai appelé Parle() (original),
l'idée c'était de dire au jeu grâce a cette fonction que this.Parle(msg)
- Code:
-
function Parle(this Character*, String msg){
int length;
int Ligne;
int Font_Height;
int Font_Width;
FontType police;
police = gBandeau_text.Controls[0].AsLabel.Font;
//Je cherche la valeur en pixel de la taille de ma Police d'écriture de mon label, pour que ça fonctionne sur toutes les Polices.
Font_Height = GetTextHeight("ABCDEFGHIJKLMNOPQRSTUVWXYZ!;?0123456",police, GetTextWidth("!;?0123456", police));
Font_Width = GetTextWidth("A",police);
//Je veux aussi la taille de mes textes
length = msg.Length * Font_Width;
Ligne = FloatToInt( IntToFloat(length) / IntToFloat(gBandeau_text.Controls[0].AsLabel.Width) );
//Dès que j'entre un texte je fais en sorte de faire grossir la taille de mon Label de 1 ligne, pour permettre l'affichage du texte
gBandeau_text.Controls[0].AsLabel.Height += Font_Height + ( Ligne *Font_Height);
L1 = String.Format("[%s: %s[",this.Name,msg);
Save_txt = Save_txt.Append(L1);
this.Say(msg);
Et j'ajoute : gBandeau_text.Controls[0].AsLabel.Text = String.Format("%s",Save_txt); dans le repeatedly_execute_always()
Et évidemment, ça ne fonctionne pas car arrive un moment, le Label n'affiche plus le texte, il ajoute des ... , pour signifier que le texte continue, mais visiblement, il est limité en caractère. Ce qui est très très relou en fait.
Je ne sais pas trop contourner cette limite du coup.
Je me suis souvenu d'un module de Krita
BlocNote qui au final a toutes les fonctionnalités, car il permet d'afficher un texte dans un cadre, qui est scrollable et en plus il ne semble pas limité en nombre de caractères.
Je suis allé mater un peu le code (chapeau au passage)
Si j'ai bien compris, tu es passé par des DynamicSprites non ?