Hola a todos deseando un buen fin de semana para toda la comunidad.
Estoy haciendo un notepad muy basico dentro de un juego y cuando este entra en suspension me marca un error en la parte surface

En el evento draw tengo

draw_surface(lienzo,0,0);

cuando entra en suspension  me dice ERROR en la linea uno que es la que escribi anteriormente.

Trying to use non-existing surface

Osea que desaparece la surface que creo al principio como se puede solucionar??

Desde ya muchas gracias a todos

Debido a que usan VRAM, las surfaces son volátiles, por eso se aconseja preguntar si existe una surface antes de dibujarla.
[gml]
if surface_exists(lienzo)
     draw_surface(lienzo,0,0)
[/gml]
Esto evitaría el error, pero igual, hay que asegurarse que en algún punto se use lienzo = surface_create(w, h), de lo contrario aunque no haya error, no se dibujará nada.


Gracias penumbra el If dse lo agrego en el draw?? o en step??
en Create---- declaro lienzo = surface_create(room_width,room_height);

Desde ya muchas gracias y que suerte encontrarte bien y como siempre tan atento, te comento si tenes steam, compre equivocado 4 gameguru si queres te regalo uno, fijate si te sirve un abrazo

No tengo steam, pero muchas gracias, Tovidi.

El if del mensaje anterior va en DRAW.

Por supuesto que es posible usar esa misma condición en otros lados antes de hacer alguna operación con la surface. No es obligatorio, pero es más seguro.

Hola lo solucione de esta manera en el DRAW:

if surface_exists(lienzo)
    { draw_surface(lienzo,0,0);}
    else
    {
    lienzo = surface_create(room_width,room_height);
      }
   
Un abrazo Penumbra , un saludo para todos y desde ya muchas gracias

Pero!!!! creia que estaba solucionado perooooooooo....lo sigue haciendo como hago aHHHHHHHH por dios, no me puedo empantanar en nada, disculpen estoy loco, bueno...
espero soluciones un abrazooooooo

#6 Septiembre 11, 2015, 11:27:11 PM Ultima modificación: Septiembre 11, 2015, 11:29:59 PM por penumbra
Deberías dar más información. En qué objeto estás creando la superficie, si ese objeto es persistente o no, etc. Si el problema pasa al ir a pausa, quizás (sólo quizás) el objeto que contiene la variable lienzo queda INACTIVO si estás usando alguna funcion instance_deactivate y por eso GMS no puede acceder a dicha variable. Si esa surface la usas para hacer una captura de la habitación antes de pausar, también puedes probar a convertir la superficie en un fondo o un sprite y dibujar eso mientras la pausa esté activa. O también se puede probar a declarar la variable lienzo como global. Hay que tener cuidado qué objetos y qué variables quedan activos/inactivos en la pausa

Si tenes razón.
Pero aclaro que habia cometido otro error con la primera quedo solucionado totalmente y se puede tomar como valida
Gracias Penumbra, gracia a todos.
Penumbra abrite un usuario de steam no puede ser que no lo tengas, un abrazo.
Y saludos a todos