Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Luis En en Septiembre 06, 2018, 07:06:26 PM

Título: AYUDA: Problema con surface que queda todo en blanco!!
Publicado por: Luis En en Septiembre 06, 2018, 07:06:26 PM
Buenas querida comunidad!!

He tenido problemas con la surface. (la surface está en el Obj_player) No sé si será por el tamaño de mi room, pero cuando pongo al personaje en mi primera room, que mide 10240, todo me sale en blanco. El personaje se puede mover y todo, pero no se ve nada del fondo ni los objetos ni el personaje, todo queda blanco.

Pero cuando pongo al personaje en las dos siguientes rooms, que miden (6032 y 7411) todo funciona bien, no me sale en blanco todo.

El tamaño de la surface en el event create la puse del tamaño de la room, y creo que el problema se da por el tamaño de mi primera room, que mide 10240, pero si es así no sabría como hacer para que no se dibuje en toooda la room, sino en una parte nada más. Intenté con view_xview, pero me sale error, que es un tamaño invalido para la surface.

Aquí les dejo el código que tengo:

[gml]
//En Obj_player

//EVENT CREATE*

xx = 2
yy = 2

surf = surface_create(room_width,room_height)   //Variable de iluminación


surf_on = false        //Cuando se activará la surface que está en STEP

luz_on = false         //Cuando se activará la luz que seguirá al personaje

//EVENT STEP*

///Surface OSCURIDAD

if (surf_on = true)
    {
             
        //Negro
        surface_set_target(surf)        //Llamamos a la surface que está en la variable "surf" (Abrimos la surface)
        draw_sprite(Spr_Oscuridad,0,864,0)     //Dibujo de oscuridad
      if (luz_on = true)                //Si la luz está activada
            {                           //Se encenderá la luz
            //Luz
            draw_sprite_ext(Spr_luz,0,x,y,xx,yy,0,-1,1) //Dibujamos el sprite de la "luz", en la misma ubicación (punto de origen) del player, y estirada dos veces en "x" y "y". (El color de la luz será la misma del sprite (roja).
            draw_set_blend_mode(bm_normal)          //Ponemos esto para que no nos salga un efecto como en negativo.
            }
            surface_reset_target()          //Cerramos la surface
       
    }

//EVENT COLLISION* (Obj_Surface_on)

surf_on = true

with other instance_destroy()

//EVENT COLLISION* (Obj_Luz_on)

///Luz Activada

luz_on  = true

//EVENT COLLISION* (Obj_Luz_off)

///Luz Desactivada

luz_on  = false

//EVENT DRAW*

///Dibujare Surface

draw_self()

draw_surface(surf,0,0)
[/gml]

Estoy utilizando la surface para iluminar una parte oscura de la room (donde se dibuja el Spr_Oscuridad)

PD: A veces me ha salido error en Event Draw> draw_self() , no sé porque.

Espero me puedan ayudar!!! Ya casi termino el jueguito!!  :-X
Título: Re:AYUDA: Problema con surface que queda todo en blanco!!
Publicado por: Yuzo en Septiembre 07, 2018, 05:52:23 PM
Estoy e el trabajo y no puedo leer tranquilamente el post, pero si que te puedo decir que yo he hevho un nivel con las mismas caracteristicas que tu en un pc con windows 8 y me funcionaba bien, ahora he formateado y tengo puesto windows 7 y se me ve blanco como a ti, y no he tocado absolutamente nada del proyecto.

Despues, lo he probado en otro pc con windows 7 y si abro ese nivel, se cierra el juego dando un error pero de windows, no del juego en si.

Mas tarde lo probe en el pc de un amigo (no se que windows era ni que pc tiene) y alli se ve bien.

Asi que puede que sea tu pc, yo te insto a que lo pruebes en diferentes ordenadores, a ser posible con diferentes sistemas operativos.

Yo pienso que es por que las surfaces hacen uso de algun tipo dw librerias de openGL o cosas de esas (no estoy al dia en ese campo) y que ahora mismo no las tengo instaladas, no obstante, si alguien puede arrojar luz a este asunto lo agradecere muchisimo.
Título: Re:AYUDA: Problema con surface que queda todo en blanco!!
Publicado por: Luis En en Septiembre 07, 2018, 07:31:21 PM
Wowww!! no tenía ni idea que podía ser de eso! como mayormente el problema es del código! jajaj.

Yo tengo Windows 8.1, y solo me sale el error cuando el tamaño de la room excede los 8 mil o 9 mil pixeles mas o menos.
Ya lo resolví momentáneamente, porque la room que media más de 10 mil pixeles, la dividí en dos, y así ya no me sale ningún error.

Igual voy a intentar probar la room de más de 10 mil pixeles en otros sistemas operativos como me dijiste. Y también veré si puedo averiguar sobre las librerias de OpenGL si tengo las necesarias en mi PC y eso, igual no sé mucho sobre ese rollo, pero espero encontrar algo  :-[

Gracias por responder bro!