Cambiare colore testo passandoci con il mouse

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Rondo
Newbie
Messaggi: 42
Iscritto il: 21/02/2014, 14:14
Uso: GM:Studio 1.4 Standard
Contatta:

Cambiare colore testo passandoci con il mouse

Messaggio da Rondo »

Devo cambiare il colore di un testo normalmente color nero, a color giallo quando ci passo sopra con il mouse.
Non uso sprite, posiziono l oggetto della room e poi se il mouse si trova nell'area di grandezza uguale al testo inserito allora deve colorarsi, con gli eventi click per esempio per cambiare room funziona.
Ho provato a cambiare la variabile color nell'evento step (la variabile la uso per draw_set_color(color)) , ma cosi non funziona e non so come fare.
In teoria dovrei far ripartire l evento draw di quel testo quando entro col mouse nell'area di testo.
Ricaricare la room con le variabili aggiornate quando entro o esco dall'area non è un opzione accettabile.
Consigli?

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Cambiare colore testo passandoci con il mouse

Messaggio da doom13 »

Supponendo che il testo str si trovi alle coordinate (x, y) potresti fare una cosa del genere:
if(mouse_x >= x and mouse_x < string_width(str)
and mouse_y >= y and mouse_y < string_height(str))
draw_set_color ecc
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Rondo
Newbie
Messaggi: 42
Iscritto il: 21/02/2014, 14:14
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Cambiare colore testo passandoci con il mouse

Messaggio da Rondo »

doom13 ha scritto:Supponendo che il testo str si trovi alle coordinate (x, y) potresti fare una cosa del genere:
if(mouse_x >= x and mouse_x < string_width(str)
and mouse_y >= y and mouse_y < string_height(str))
draw_set_color ecc
ho gia provato a inserire i draw_set_color, draw_set_font e draw_text che uso nell evento draw nell evento step, ma non funzionano, rimane nera la scritta.
come detto l'area di selezione funziona dato che i click funzionano.

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Cambiare colore testo passandoci con il mouse

Messaggio da Wolfrost »

La soluzione potrebbe essere abbastanza semplice. Abbiamo il tuo Draw Event, dove disegni la tua stringa che chiamiamo "str" alle coordinate x ed y (tutto supponendo ovviamente).
Il tuo draw event deve funzionare così

Codice: Seleziona tutto

///DRAW EVENT
//Tra tutti i codici, c'è quello per disegnare questo testo, MA con un certo colore. Usiamo quindi una variabile
var color = c_black; //Default value

draw_text_color(x, y, str, color, color, color, color, 1);

//Poi basta buttarci un controllo ad if come ha fatto il caro Doom
if(mouse_x >= x and mouse_x < string_width(str) 
and mouse_y >= y and mouse_y < string_height(str))
color = c_yellow; //Se proprio vuoi il giallo, ma modifica come vuoi.
Un'altra soluzione richiede l'uso di un bello script

Codice: Seleziona tutto

///scr_changeColorMouseOver(str,x,y,color,default);

var color = argument4;
var xx = argument1, yy = argument2, str = argument0;

if(mouse_x >= x and mouse_x < string_width(str) 
and mouse_y >= y and mouse_y < string_height(str))
color = argument3;

return color;
E poi chiami semplicemente così:

Codice: Seleziona tutto

///DRAW EVENT
//Tra tutti i codici, c'è quello per disegnare questo testo, MA con un certo colore. Usiamo quindi una variabile
var color = scr_changeColorMouseOver(str,x,y,c_yellow,c_black);

draw_text_color(x, y, str, color, color, color, color, 1);
Certamente la seconda soluzione contribuisce alla leggibilità del codice, e non solo a quello, credo.
Immagine

Immagine

Rondo
Newbie
Messaggi: 42
Iscritto il: 21/02/2014, 14:14
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Cambiare colore testo passandoci con il mouse

Messaggio da Rondo »

quindi andava sull evento draw, problema risolto, grazie.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti