sto provando a realizzare un sistema di modal window utilizzando le surface.
Ho la mia schermata come questa sotto con la gui sotto che funge da menu e altro
Ora quando il personaggio raggiunge un bonus, lo schermo si scurisce (applico un alpha ad un rettangolo colorato di nero)
viene visualizzata una finestra (quella bianca con la x) e soprattutto la sezione gui (quella in rosso) rimane attiva.
Quindi l'utente o puù cliccare sulla X e chiudere la finestra oppure interagire con la gui
Questo è l'approcio che uso, ma volevo sapere se esiste un modo "migliore" o pulito per avere lo stesso risultato.
Codice: Seleziona tutto
w_surface = surface_create(1280,720);
surface_set_target(w_surface);
draw_clear_alpha(c_black,0); // Clears surface.
draw_enable_alphablend(false);
draw_surface(application_surface,0,0);
draw_enable_alphablend(true);
surface_reset_target();
//salvo il contenuto
screen_back = background_create_from_surface(w_surface,0,0,1280,619,false,false);
surface_free(w_surface);
//creo la finestra modale
instance_create(100,100,obj_modal_window_bonus);
e poi nella obj_modal_window_bonus
Codice: Seleziona tutto
//disegno lo screenshot catturato prima
draw_background(screen_back,0,0);
//schermo semitrasparente
draw_set_color(c_black); //set color to black
draw_set_alpha(0.7); //set half transparency
draw_rectangle(1, 1, room_width, 619, 0); //draw rectangle
draw_set_alpha(1); //set back to normal