Cita de: codarck en Mayo 07, 2017, 08:01:42 PMPuedes usar el de colisión, aunque no es tan efectivo como este al momento de programar botones, y si he visto que con códigos se puede remplazar a cualquier evento, siempre y cuando seas un experto en programación, no es mi caso :-[.
hay una forma de verificar si el mouse esta dentro o fuera del objeto, con codigos? sin necesidad de el evento mouse??
lo dig porq hay algunos eventos q se pueden reemplazar por codigos xD :(
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
406
Preguntas y respuestas / Re:dudirigilla :(
Mayo 07, 2017, 08:53:52 PM407
Preguntas y respuestas / Re:Problemas con mi primer juego, al caer del salto se engancha.
Mayo 07, 2017, 08:49:05 PMCita de: MetalGore en Mayo 07, 2017, 07:54:14 PM
Hola, soy nuevo en esto de la programación de videojuegos y estoy siguiendo un tutorial en Youtube de "TheMontyDrake" sobre como hacer un juego de plataformas, he seguido bien los dos primeros videos pero ahora viene mi problema: Cuando salto y caigo al suelo se queda clavado el Personaje, un par de sprites o así, pero no siempre. He estado revisando mil veces el codigo que sale en el tutorial y lo tengo igual y en el video todo le va bien y a mi me se clava el Personaje >:(. Haber si alguien me puede ayudar.
Este es el codigo de movimiento del personaje, haber si alguien ve algún error, o puede que el error esté en otro sitio.Código [Seleccionar]
///Desplazamiento
var KeyLeft, KeyRight, KeyJump, KeyJumpRelease;
KeyLeft = -keyboard_check (vk_left);
KeyRight = keyboard_check (vk_right);
KeyJump = keyboard_check_pressed(ord('X'));
KeyJumpRelease = keyboard_check_released(ord('X'));
//Comprobación de colisiones
intColLeft = place_meeting(x - 1, y, objBlock);
intColRight = place_meeting(x + 1, y, objBlock); //Para que se pare cuando hay un Block
bolGround = place_meeting (x, y + 1, objBlock); //Para saber si Player tiene un Block debajo
intMove = KeyLeft + KeyRight;
//Definir aceleración y fricción en función del medio
if (!bolGround)
{
intTempAcc = intAirAcc;
intTempFric = intAirFric;
}
else
{
intTempAcc = intGroundAcc;
intTempFric = intGroundFric;
}
//Velocidad horizontal
if (intMove != 0) intVX = scrApproach(intVX, intVXMax * intMove, intTempAcc);
else intVX = scrApproach(intVX, intVXMax * intMove, intTempFric);
//Velocidad Vertical
if (!bolGround)
{
intVY = scrApproach(intVY, intVYMax, intGravityNorm); //Caída libre
}
//Salto
if (KeyJump && bolGround) intVY = -intVYMax;
//Colision horizontal (X)
repeat(abs(intVX))
{
if (!place_meeting(x + sign(intVX), y, objBlock))
{
x += sign(intVX)
}
else
{
intVX = 0;
break;
}
}
//Colisión Vertical (Y)
repeat(abs(intVY))
{
if (place_meeting(x, y + sign(intVX), objBlock))
{
intVY = 0;
break;
}
else y += sign(intVY)
}
Gracias. Un saludo :)
Tambien he seguido sus tutoriales de plataformas, pero si el problema no esta en los códigos, puede ser en el sprite, ya que monty usa un personaje animado que cambia la posicion de sus pixeles por cada fotograma, también puede ser por la colisión que le has puesto al sprite o su centrado, yo ya termine sus tutoriales y hay que adaptar el sprite a sus códigos, buena suerte ;).
408
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 07, 2017, 08:39:57 PMCita de: Alesxanderk en Mayo 07, 2017, 03:34:48 PM
Te dejo una imagen:
[spoiler]
[/spoiler]
Y el .gmz adjunto
Pues...

Solucionaste con un simple código un problema que me tuvo de los nervios por casi 1 semana :o, gracias :D.
409
Preguntas y respuestas / Re:Pequeña duda sobre crear un diálogo
Mayo 07, 2017, 08:12:06 PMCita de: Raiden en Mayo 07, 2017, 03:17:15 PMSi se fija mi letrero es padre
Gracias. ¿Es posible hacer un objeto (obj_dialogos) y luego, a los demás objetos, hacerlos parent de este? lo intenté y no me dejaba crearle eventos al otro objeto, me daba error y no sé porqué.

y este es un hijo

Ignora el END STEP
DRAW GUI
/// Comprobar si el jugador está cerca
event_inherited();
if(mostrar){
draw_sprite(spr_HUD_Texto,10,0,32);
draw_set_font(f_Texto);
draw_set_valign(fa_center);
draw_set_valign(fa_archive);
draw_set_color(c_black);
draw_text(224,48,paginas[pagina]);
draw_set_color(c_white);
draw_text(223,47,paginas[pagina]);
}
No se mucho de esto, pero se lo suficiente para que funcione en el juego :).
410
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 07, 2017, 02:57:14 AMCita de: wilodxd en Mayo 07, 2017, 02:45:49 AMPor lo que veo en su imagen se sigue viendo igual de defectuosa como la mía :-\, solo que el ejemplo no es un gif para apreciar los defectos, y si empece hace poco haber el tema de surface, por lo que no entiendo muy bien el código.
ha~ bueno... a mi me ha funcionado lo probe ~~ el problema es que no entiendes el codigo revisalo... solo estas copiando el codigo
es lo mismo que antes puse bueno suerte...
411
Preguntas y respuestas / Re:Pequeña duda sobre crear un diálogo
Mayo 07, 2017, 02:47:14 AMCita de: Raiden en Mayo 07, 2017, 12:18:37 AMYo le recomiendo usar sprite y objetos de la siguiente forma:
Estaba pensando en hacer un diálogo de la siguiente manera: creo un objeto que es la caja de diálogo, y después creo un script para añadir un texto a la caja de diálogo. Mi duda es, ¿es recomendable hacerlo de esta manera? ¿me recomiendan otra manera de hacerlo?
Quiero sacarme de dudas de una vez cual sería una manera óptima de hacer un script de diálogos, para no lamentarme luego.
1.- Crea los sprite (en mi caso esto)

2.- Crea una fuente de letra (en mi caso esto)

3.-Crea al objeto (en mi caso esto)

4.-Programalo (en mi caso esto)
CREATE
/// Variables
event_inherited(); // heredar del padre las colisiones
pagina = 0; // contador de pagina actual
paginas[0] = ""; // arreglo de páginas
mostrar = false; // mostrar cartel por defecto
pagina = -1; // página actual, -1 = inactivo
image_speed =0.1;
STEP
/// Detectar si jugador abre el cartel
if (keyboard_check_pressed(ord('Z')) and distance_to_object(objJugador)<3) {
mostrar = true;
}
// Si se aleja cerramos el cartel y reiniciamos pagina
if (distance_to_object(objJugador)>3) { mostrar = false; pagina = -1; }
/// Detectar si jugador pasa página
if (keyboard_check_pressed(ord('Z')) and mostrar) {
// Pasar página
if (pagina+1 < array_length_1d(paginas)) pagina++;
else {
// Si nos pasamos del máximo reiniciamos el cartel
mostrar = false;
pagina = -1;
}
}
END STEP: Esto es simplemente luz no ayuda al codigo
DRAW GUI
/// Comprobar si el jugador está cerca
if(mostrar){
draw_sprite(spr_HUD_Texto,0,0,32);
draw_set_font(f_Texto);
draw_set_valign(fa_center);
draw_set_valign(fa_archive);
draw_set_color(c_black);
draw_text(224,48,paginas[pagina]);
draw_set_color(c_white);
draw_text(223,47,paginas[pagina]);
}
Vaz a creacion code del personaje o letrero en este caso, y le pones esto:

Cada pagina
- le debes sumar 1 para nueva ventana de dialogo y lo que escribas lo pones entre "".
Nota: Los valores fueron hechos y ajustados a las dimensiones de mi juego, deberás buscar tus propios valores.
412
Preguntas y respuestas / Tengo la linterna mal hecha (Solucionado)
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
Aquí hay cuadrados rojos pero no se ven. profundidad del cubo = 0 por defecto
Ejemplo 2
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.

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
Ejemplo 1

Ejemplo 2

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.

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
413
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 07, 2017, 02:18:24 AMCita de: wilodxd en Mayo 07, 2017, 12:43:14 AMLa verdad se ve así:Cita de: Naitsabes0 en Mayo 07, 2017, 12:06:44 AMCita de: wilodxd en Mayo 06, 2017, 10:48:03 PM
~~ ehm cambia eso por 'surface_reset_target(surf)' hay varios otros escritos...
y en draw rectangle es asi 'draw_rectangle(0,0,view_wview,view_hview,0);'
pff vamos pequeños detalles :P
e intenta entender el codigo , la idea es aprender como funciona no hacer copy/paste.
Vale estudie este código y lo deje así:
obj_Oscuridad
CREATE:
///Plana para dibujar
globalvar surf;
surf = surface_create(view_wview,view_hview);
STEP
///Oscuridad
//Plana de color negro
surface_set_target(surf);
draw_set_color(c_black);
draw_rectangle(0,0,view_wview,view_hview,0);
surface_reset_target();
//Objeto que ilumina
surface_set_target(surf);
draw_set_blend_mode(bm_subtract);
//aqui puede poner el sprite de alguna 'luz'
draw_sprite_ext(spr_Luz,0,x,y,5,5,45,c_white,0.2)
draw_circle(x-view_xview,y-view_yview,32,0);
surface_reset_target();
DRAW
///Dibuja la surface
if(surface_exists(surf)){
draw_surface(surf,view_xview,view_yview);
}else{
surf = surface_create(view_wview,view_hview);
}
obj_Personaje
DRAW
//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)
Resultado: ¿Colores invertidos :o? no es lo que estoy buscando, pero se ve interesante :).
Sin embargo se veo muy lejos a lo que estoy buscando desde que empece este post :(.
jaajjajaja ops ~~
aqui
"
//Objeto que ilumina
surface_set_target(surf);
draw_set_blend_mode(bm_subtract);
//aqui puede poner el sprite de alguna 'luz'
draw_sprite_ext(spr_Luz,0,x,y,5,5,45,c_white,0.2)
draw_circle(x-view_xview,y-view_yview,32,0);
draw_set_blend_mode(bm_normal);///esta linea ~~ debes restablecer el 'blend'
surface_reset_target();
"

La luz esta sin moverse en un solo lugar con un tamaño super pequeño al original, ademas aparece un triangulo negro que oculta todo, la verdad creo que esto de surface no sirve para la linterna, ademas este código ya no se parece al original que tuve al empezar el video.
414
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 07, 2017, 12:06:44 AMCita de: wilodxd en Mayo 06, 2017, 10:48:03 PM
~~ ehm cambia eso por 'surface_reset_target(surf)' hay varios otros escritos...
y en draw rectangle es asi 'draw_rectangle(0,0,view_wview,view_hview,0);'
pff vamos pequeños detalles :P
e intenta entender el codigo , la idea es aprender como funciona no hacer copy/paste.
Vale estudie este código y lo deje así:
obj_Oscuridad
CREATE:
///Plana para dibujar
globalvar surf;
surf = surface_create(view_wview,view_hview);
STEP
///Oscuridad
//Plana de color negro
surface_set_target(surf);
draw_set_color(c_black);
draw_rectangle(0,0,view_wview,view_hview,0);
surface_reset_target();
//Objeto que ilumina
surface_set_target(surf);
draw_set_blend_mode(bm_subtract);
//aqui puede poner el sprite de alguna 'luz'
draw_sprite_ext(spr_Luz,0,x,y,5,5,45,c_white,0.2)
draw_circle(x-view_xview,y-view_yview,32,0);
surface_reset_target();
DRAW
///Dibuja la surface
if(surface_exists(surf)){
draw_surface(surf,view_xview,view_yview);
}else{
surf = surface_create(view_wview,view_hview);
}
obj_Personaje
DRAW
//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)
Resultado: ¿Colores invertidos :o? no es lo que estoy buscando, pero se ve interesante :).

Sin embargo se veo muy lejos a lo que estoy buscando desde que empece este post :(.

415
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 06, 2017, 09:29:54 PMCita de: wilodxd en Mayo 06, 2017, 06:07:43 PMEsta mal escritoCita de: Naitsabes0 en Mayo 06, 2017, 04:49:06 AMCita de: wilodxd en Mayo 06, 2017, 03:13:26 AM
si quieres crear un sistema de iluminacion, ocupa 'surfaces' ~~
Las habría ocupado antes de hacer este post si supiera como crearlas bien para el juego que hago, pero como no logre armarlo bien, empece con este código, ademas los ejemplos hispanos son de :GM8: y unos pocos ingleses de :GMS:.
comienza creando una 'surface'
-en el event create del 'obj_oscuridad'-
"
globalvar surf;
surf = surface_create(view_wview,view_hview);
"
bien esto es para tener una 'plana' para dibujar
ahora dibujaremos en ella
-en el evento step del 'obj_oscuridad'-
"
surface_set_target(surf);
draw_set_color(c_black);
draw_rectangle(0,0,view_wview,view_hview);
surface_reset();
"
bien ya tenemos la plana de color negro ahora hay que borrar o hacer nuestras luces
-en el objeto que iluminara en el evento step-
"
surface_set_target(surf);
draw_set_blend_mode(bm_subtract);
//aqui puede poner el sprite de alguna 'luz'
draw_circle(x-view_xview,y-view_yview,32,0);
surface_reset_target();
"
finalmente dibujamos la surfaces en pantalla
-en el 'obj_oscuridad' en el evento draw-
"
if(surface_exists(surf)){
draw_surface(surf,view_xview,view_yview);
}else{
surf = surface_create(view_wview,view_hview);
}
"
bien pruebalo,no lo he probado pero deberia funcionar.

Ademas tiene lineas rojas

Se agradece la intención :), pero este quedo peor que todos los anteriores mencionados, ya que ni siquiera se puede abrir el juego :(, no es por ser cómodo pero ¿no cree que debería comprobar si la información enviada funciona?
416
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 06, 2017, 04:49:06 AMCita de: wilodxd en Mayo 06, 2017, 03:13:26 AM
si quieres crear un sistema de iluminacion, ocupa 'surfaces' ~~
Las habría ocupado antes de hacer este post si supiera como crearlas bien para el juego que hago, pero como no logre armarlo bien, empece con este código, ademas los ejemplos hispanos son de :GM8: y unos pocos ingleses de :GMS:.
417
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 06, 2017, 04:36:24 AMCita de: Alesxanderk en Mayo 06, 2017, 01:16:37 AM
Intenta con el codigo cambiado de esta forma:
obj_Oscuridad - Sin sprite profundidad -1
[gml]
///Draw Event
///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.
///Creación 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)
[/gml]
obj_Personaje - cuadrado verde profundidad 0.
[gml]
//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)
[/gml]
obj_Rojo - cuadrado rojo profundidad 0.
Su código provoca el siguiente efecto.

No se que pasa, pero veo que su código destruye al jugador y a los cuadrados rojos, ni el propio jugador puede moverse con este nuevo código ¿seguro/a que su respuesta es para :GMS:? porque no funciona :-\.
418
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 06, 2017, 12:32:04 AMCita de: DeeY en Mayo 05, 2017, 11:38:46 PM
Vuelve a dejar bm_add
Con ese consejo queda así

Con cada cambio que me dice que aga se veo peor que la original ¿seguro que sabe como hacer o solucionar este problema? parece mas complicado de lo que pensaba :(.
419
Preguntas y respuestas / Re:Tengo un problema con los depth (profundidad)
Mayo 05, 2017, 07:11:24 PMCita de: DeeY en Mayo 05, 2017, 06:29:09 AM
Cambia bm_add a bm_subtract
Y añade esto debajo de draw_set_blend_mode(bm_add);Código [Seleccionar]draw_clear(c_white);
EDITO: Adjunto un ejemplo de luces del cual hice un port para Game Maker: Studio
Asi es como se ve en los 2 ejemplos.
Ejemplo 1

Ejemplo 2

Así quedaron los 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_set_blend_mode(bm_subtract)
draw_clear(c_white)
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
Solo se invirtieron los colores (tonalidades), el problema todavía persiste, incluso queda peor que antes :-\.
420
Preguntas y respuestas / Tengo un problema con los depth (profundidad) (Solucionado)
Mayo 05, 2017, 03:20:32 AM
Resulta que logre resolver de cierta forma mi problema:
Ejemplo 1
Aquí hay cuadrados rojos pero no se ven. profundidad del cubo = 0 por defecto
Ejemplo 2
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.

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
Ejemplo 1

Ejemplo 2

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.

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