Problema con draw_text

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Problema con draw_text

Messaggio da Kimera_V2 »

Salve ragazzi ho un piccolo problema col draware del testo, sto ultimando la chat del mio gioco solo che non riesco a draware il testo correttamente, cioè i messaggi si accavallano o vengono drawati a casaccio o rimane un rigo vuoto fra un messaggio e l'altro.
Ho creato due script uno serve per andare a capo e l'altro per disegnare la chat.
script per andare a capo:

Codice: Seleziona tutto

//argument0..Testo.
//argument1..Lunghezza massima.
var testo="";
if string_length(argument0)>argument1{
testo=string_insert("#",argument0,argument1);
return testo;
}else return argument0;
script per disegnare la chat

Codice: Seleziona tutto

ult_mex=ds_list_size(global.chat);
ult_nick=ds_list_size(global.nick);
ult_ora=ds_list_size(global.ora);
ult10_mex=(ult_mex-argument0)
draw_set_colour(c_white)
if global.stato_chat=1{//chat aperta
for(i=ult10_mex; i<ult_mex;i+=1){
if is_undefined(ds_list_find_value(global.chat,i))=false{
str=global.ora[| i]+" "+global.nick[| i]+":"+global.chat[| i]
testo=a_capo_auto(str,50)
if string_length(testo)>50{draw_text(10, 10 + (10*(i-ult10_mex)*3),testo)}
else if string_length(testo)<50{draw_text(10, 10 + (10*(i-ult10_mex)*3),testo)}
}
}
}
//chat chiusa
else if global.stato_chat=0{
if is_undefined(global.chat[|global.tot_mex])=false{
draw_text(10, 10, global.ora[| global.tot_mex]+" "+global.nick[| global.tot_mex]+":"+global.chat[| global.tot_mex]);
}
}
cosi facendo i messaggi si presentano cosi:
mex1:aaaaaaa

mex2:aaaa

mex3:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
mex4:aaaa

mex5:aaa

Solo il mex3 e il mex4 vengo drawati correttamente, ho provato in vari modi ad eliminare gli spazzi o per non far accavallare il testo, cosa sbaglio?

Avatar utente
civic71
GMI Advanced
Messaggi: 2210
Iscritto il: 23/10/2003, 17:31
Specialità: Risotto con zucchine
Uso: GM:Studio 1.4 Pro
Località: Jesolo (venezia)
Contatta:

Re: Problema con draw_text

Messaggio da civic71 »

Bo , faccio fatica nel comprendere bene il codice .
Mi sembra di notare che nel caso di >50 o <50 il testo disegnato sarà il medesimo :

Codice: Seleziona tutto

 if string_length(testo)>50{draw_text(10, 10 + (10*(i-ult10_mex)*3),testo)}
else if string_length(testo)<50{draw_text(10, 10 + (10*(i-ult10_mex)*3),testo)}

Comunque non sarebbe meglio utilizzare draw_text_ext , per andare a capo ?

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con draw_text

Messaggio da Kimera_V2 »

Il problema è che non ho una singola stringa da draware, il codice della chat mi trova gli ultimi 10 messaggi inseriti in una ds_list e li drawa.
Solo che cosi facendo rimangono spazi ho provato a modificare il codice ma senza risultato
Il testo veniva sovrapposto o drawato sfalzato.
Non ho provato con draw_text_ext ma credo di non risolvere per il fatto se il penultimo mex è lungo quindi ha drawato il testo su due righe l ultimo mex me lo drawera sulla seconda riga del penultimo mex almeno credo.

Avatar utente
SP Games
Membro
Messaggi: 241
Iscritto il: 27/06/2014, 11:21
Specialità: Programmer
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Problema con draw_text

Messaggio da SP Games »

Perdona, ma draware nun se po' vedè... :baron: :mrgreen:

Avatar utente
civic71
GMI Advanced
Messaggi: 2210
Iscritto il: 23/10/2003, 17:31
Specialità: Risotto con zucchine
Uso: GM:Studio 1.4 Pro
Località: Jesolo (venezia)
Contatta:

Re: Problema con draw_text

Messaggio da civic71 »

Dai è simpatico il termine "draware" .

Io farei una cosa del genere (più o meno ...non ho testato ) :

messaggio_1="blabla";
messaggio_2="gnegne";
messaggio_3="abubaabuba";

messaggio_totale=string(messaggio_1+"#"+messaggio_2+"#"+messaggio_3);
draw_text_ext(x,y,messaggio_totale,20,50);

Certo non è perfetto per via che a volte potrebbe non sempre andare a capo al 50° carattere , infatti io opterei nel mettere un pò meno ... tipo width della chat -10.


Manuale draw_text_ext = http://translate.google.it/translate?hl ... &sandbox=1

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con draw_text

Messaggio da Kimera_V2 »

Grazie Civic per il tuo consiglio ho optato di non usare le multi righe perchè il testo veniva spostato in continuazione e non rispettava più le dimensioni della chat cioé usciva fuori.

Rispondi

Chi c’è in linea

Visitano il forum: Google [Bot] e 37 ospiti