Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Naitsabes0 en Mayo 07, 2017, 02:29:51 AM

Título: Tengo la linterna mal hecha (Solucionado)
Publicado por: Naitsabes0 en Mayo 07, 2017, 02:29:51 AM
Como dato esto es lo mismo que hay en el post "Tengo un problema con los depth (profundidad)", solo que lleva de 4-5 días y todos los cambios fueron mal construidos, tal vez porque fueron de  :GM8: a pesar de que el problema es de  :GMS:, por lo que decidí empezarlo de 0 otra vez  :-\.

Ejemplo 1
(https://i.gyazo.com/8fdc9d50cac3ba908d6edc65732bd7aa.gif) Aquí hay cuadrados rojos pero no se ven. profundidad del cubo = 0 por defecto

Ejemplo 2
(https://i.gyazo.com/49abee468c20ba0825ebee816ba1cf0d.gif) Aqui los cuadrados se ven incluso encima de la oscuridad. profundidad del cubo = -10

Mi problema es que no se porque los cubos no se dejan ver cuando la luz los alcanza, por lo que aumente su depth a -1 hasta llegar a -10 (10 intentos fallidos), pero esto solo provoco que los cuadrados se vieran por encima de la oscuridad y la luz.

La idea es que se comporte de la forma típica de los juegos, es decir esto.

(https://i.gyazo.com/f1a8e23ac48ac26c29ef1ef5344af4d9.gif)

Y claro mi código me hace ver todo o nada  :(.

Códigos:

obj_Oscuridad: Sin sprite profundidad 0 por defecto

DRAW:
///Dibuja la oscuridad
depth = -1; //ajusto la profundidad
draw_set_color(c_black)
draw_set_alpha(1) // 1 oscuro total 0.5 poco oscuro
draw_rectangle(view_xview[0]-2,view_yview[0]-
2,view_xview[0]+view_wview,view_yview[0]+view_hview,0)
draw_set_color(c_white)
draw_set_alpha(1)
//Esto es para hacer un rectángulo negro en la view.

obj_Personaje: cuadrado verde profundidad -2

DRAW:
///Creacion de la linterna
//para la apariencia de la linterna
draw_set_blend_mode(bm_add)
draw_sprite_ext(spr_Luz,0,x,y,5,5,45,c_white,0.2)
draw_sprite_ext(spr_Luz,0,x,y,1,1,0,c_white,1)
draw_set_blend_mode(bm_normal)

//para que se vea el personaje.
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle
,image_blend,image_alpha)

obj_Rojo: cuadrado rojo profundidad 0 en ejemplo 1 y -10 en ejemplo 2.

Sin codigo