Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: djboro88 en Junio 06, 2014, 11:24:09 AM

Título: Mostrar DRAW cuando doble colision
Publicado por: djboro88 en Junio 06, 2014, 11:24:09 AM
Hola a todos, volviendo sobre este crokis:
(http://www.subeimagenes.com/img/crokis-977035.jpg)

Lo que estoy intentando hacer es que cuando la doble colisión se haga, se obscurezca la ventana y aparezca el cartel de ENHORABUENA.
Lo que tengo hasta el momento es esto:

Objeto metaFinal1
CREATE:
//NIVEL 1
global.finNivel1_rojo = 0;
global.finNivel1_verde = 0;

//Configuracion inicial
global.Score = 0;
global.draw_final1 = false; //Ventana final oculta


STEP:
//Están los dos tocando la meta
if global.finNivel1_rojo = 1 and global.finNivel1_verde = 1{
   
    //NIVEL SUPERADO
    global.draw_final1 = true;
}

//Si tocan la meta cambiar variable a 1 sino 0
if place_meeting(obj_RedPlayer.x, obj_RedPlayer.y, obj_metaRoja){
    global.finNivel1_rojo = 1;
}else{
    global.finNivel1_rojo = 0;
}


if place_meeting(obj_GreenPlayer.x, obj_GreenPlayer.y, obj_metaVerde){
    global.finNivel1_verde = 1;
}else{
    global.finNivel1_verde = 0;
}

//Enhorabuena
if global.draw_final1 = true{
    draw_set_color(c_black);
    draw_set_alpha(0.35);
    draw_rectangle(0,0,640,480,0);
    draw_set_alpha(1);
   
    draw_set_alpha(c_white);
    draw_set_halign(fa_center);
    draw_text(320,140,"ENHORABUENA");
}


No se porque no se me oscurece ni aparece nada.
¿Alguna solución?

Gracias y Saludos !!
Título: Re:Mostrar DRAW cuando doble colision
Publicado por: djboro88 en Junio 06, 2014, 11:35:32 AM
He conseguido que funcionara, pero ¿existe alguna otra forma?

En el objt_metaFinal1.
STEP
//Están los dos tocando la meta
if global.finNivel1_rojo = 1 and global.finNivel1_verde = 1{
   
    //NIVEL SUPERADO
    global.draw_final1 = true;
    instance_create(0, 112, obj_mostrarEnhorabuena);
}


Y en otro obj_mostrarEnhorabuena.
DRAW
//Enhorabuena
if global.draw_final1 = true{
    draw_set_color(c_black);
    draw_set_alpha(0.35);
    draw_rectangle(0,0,640,480,0);
    draw_set_alpha(1);
   
    draw_set_alpha(c_white);
    draw_set_halign(fa_center);
    draw_text(320,140,"ENHORABUENA");
}
Título: Re:Mostrar DRAW cuando doble colision
Publicado por: 3dgeminis en Junio 06, 2014, 10:48:24 PM
Podes hacer tambien que se valla oscureciendo con el tiempo de esta manera:
CREATE
alfa=0

DRAW
if alfa<1 {alfa+=0.01}

draw_set_color(c_black);
draw_set_alpha(alfa);
draw_rectangle(0,0,640,480,0);

if alfa>=1
{
   draw_set_color(c_white);
   draw_set_halign(fa_center);
   draw_text(320,140,"ENHORABUENA");
}
Título: Re:Mostrar DRAW cuando doble colision
Publicado por: eduardo960 en Junio 06, 2014, 11:04:15 PM
No necesitas crear un objeto nuevo, tu error es bastante sencillo de explicar, las funciones draw_ pueden ser utilizadas exclusivamente en el evento Draw, tú primer código trata de dibujar en Step.