Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Ayuda con el surface en el draw  (Leído 720 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado eams1986

en: Abril 03, 2021, 08:06:42 pm
hola a todos :) tengo un problema con la superficie en el evento draw_gui, el efecto de sombreado funciona bien:

https://i.gyazo.com/b5c03a4e2bb6de64d8140086dc1f2827.png

pero el evento Draw normal se ve diferente:

https://i.gyazo.com/a74bab22df12b14da93aaa6bc8c924ec.png

/// @description Cuadricula Draw event

//Creamos el Surface
var lighting = global.light;
var view_x = camera_get_view_x(view_camera[0]);
var view_y = camera_get_view_y(view_camera[0]);
var viewport_w = camera_get_view_width(view_camera[0]);
var viewport_h = camera_get_view_height(view_camera[0]);

if surface_exists(lighting) {
    surface_set_target(lighting);
    draw_clear(c_black);
   
    if instance_exists(o_player_00) {
        with o_player_00 {
            gpu_set_blendmode(bm_add);
            draw_circle_colour(x-view_x,y-view_y,radius,col,c_black,false);
            gpu_set_blendmode(bm_normal);  
            }
        }
    surface_reset_target();
   
    ///**Initialized el shader brillante
    shader_set(sh_lighting);
    var tex = surface_get_texture(lighting);
    var handle = shader_get_sampler_index(sh_lighting,"lighting");
    texture_set_stage(handle,tex);
   
    draw_surface_ext(lighting,view_x,view_y,1,1,0,c_white,0);  //AUQUE ESTE EN CERO EL SHADER CREA LA SOMBRA
   
    shader_reset();
    }
else {
    global.light = surface_create(viewport_w-25,viewport_h-25);
    }
   
//white Line
draw_set_color(c_white);
draw_set_alpha(0.5);
for(var i=0;i<= max(room_width,room_height);i+=32) {
    draw_line(0,i,room_width,i);
    draw_line(i,0,i,room_height);
    }
draw_set_alpha(1);

se le perdio el brillo a el SHADER :(



No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Void

Respuesta #1 en: Abril 04, 2021, 02:35:25 am
Sospecho que es un asunto de orden de dibujado, trata de usar el código en el evento Draw End, o asegurate de que el código de la surface sea el último en ser ejecutado durante el evento Draw.

 


Desconectado eams1986

Respuesta #2 en: Abril 04, 2021, 04:55:46 am
Hola amigo! Sera que le puede dar una revisada asi le puedo mandar un demo ?

Gracias!


Desconectado Void

Respuesta #3 en: Abril 05, 2021, 08:02:37 am
Prueba primero cambiando el orden de dibujo para la surface, si no te funciona subes el demo para revisarlo.

 


 


Warning: Parameter 1 to spoiler_buffer() expected to be a reference, value given in Unknown on line 0

Warning: Parameter 1 to custom_report_ob() expected to be a reference, value given in Unknown on line 0