Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: PrismaBIT en Abril 04, 2020, 03:37:32 PM

Título: Error Iluminacion jugador (SOLUCIONADO)
Publicado por: PrismaBIT en Abril 04, 2020, 03:37:32 PM
Ok tengo 3 rooms con tamaños diferentes ya he solucionado el problema de los tamaños pero ahora hay otro cuando paso de una room a otra me dice el sig error
Trying to use non-existing surface.
at gml_Object_obj_player_rojo_DrawEvent_1 (line 3) - draw_surface(surf,0,0)


en el evento create puse: [gml]surf = surface_create(584,184);[/gml]
en el evento step puse esto: [gml]///Luz

//negro
surface_set_target(surf)
draw_set_color(c_black)
draw_rectangle(0,0,room_width,room_height,0)

//Luz
draw_set_blend_mode(bm_subtract)
draw_sprite_ext(spr_luz,0,x,y,xx,yy,0,-1,1)
draw_set_blend_mode(bm_normal)

surface_reset_target()[/gml]

y en el evento draw puse esto : [gml]draw_self()
draw_surface(surf,0,0)[/gml]

Ahora nose cual sea el error se pueden ayudar se los agradezco
Título: Re:Error Iluminacion jugador
Publicado por: Clamud en Abril 04, 2020, 03:54:33 PM
Las surfaces se borran por varios motivos. Al parecer el cambio de tamaño de la ventana es lo que causa que se borre.
Puedes hacer esto para solucionarlo. Antes de manipular la surface, comprueba que existe, si no existe crea una nueva.
[gml]
if not surface_exists(surf)
surf = surface_create(584, 184);

//negro
surface_set_target(surf)
draw_set_color(c_black) // . . .
[/gml]