Noticias

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

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!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Sr.Mojon

Páginas: 1
1
Preguntas y respuestas / Re:ayuda
« en: Septiembre 04, 2018, 10:39:00 pm »
Si el objeto tiene una mascara de colision con solo los eventos del raton lo puedes hacer(menos los tipo global).
Si quieres hacelo en otro evento como STEP se pueden usar las funciones instance_position, point_in_rectangle, point_in_circle, point_in_triangle, collision_point, y alguna otra que me olvide(algunas de ellas no necesitan que tenga mascara de colision "EL MANUAL 8)").
Tambien puedes usar la distancia entre el objeto y el cursor.
Los siguientes usuarios dieron las gracias a este tema: Sr.Mojon

2
Preguntas y respuestas / Re:ayuda con power ups
« en: Julio 24, 2018, 04:16:45 am »
Hola Sr.Mojon!

Este efecto se activa apenas se crea el objeto.
En el evento CREATE:
Código: [Seleccionar]
//El tiempo de vida máximo del objeto
time_max = 5 * room_speed;
/*
El tiempo de vida del objeto.
Si tu room_speed = 30, será de: 1 seg = 30 steps.

En este caso son 30 steps, por lo tanto durará 10 segundos.
ya que se debe multiplicar la cantidad de segundos que queremos
que dure el efecto por la velocidad de la room.
*/



//Usado como reloj
time = time_max;

En el evento STEP:
Código: [Seleccionar]
time--; //Bajar el contador

//Destruír el objeto si el contador llega a 0
if (time == 0) {instance_destroy();}

En el evento DRAW:
Código: [Seleccionar]
//Dibujar un efecto de desvanecimiento
draw_set_alpha(time/time_max);

//Dibujar el sprite del powerup
draw_sprite(spr_powerup,0,x,y);

//Dejar al valor alpha en 1 para que no afecte a otros objetos
draw_set_alpha(1);


Otro tipo de efecto es que se active cuando queden unos pocos segundos de vida al objeto. Para hacerlo cambia el código anterior en DRAW por este:
Código: [Seleccionar]
//Variable para cuando comience el efecto
//Nos seguimos refiriendo al tiempo en segundos multiplicado por la room_speed
var effect_time = 3 * room_speed;

//Si el tiempo restante es menor al tiempo donde comienza el efecto
if (time < effect_time){
    draw_set_alpha(time/effect_time);
}


//Dibujar el sprite del powerup
draw_sprite(spr_powerup,0,x,y);

//Dejar al valor alpha en 1 para que no afecte a otros objetos
draw_set_alpha(1);

Te adjunto un proyecto con el efecto hecho.
Espero que te sirva :)
Los siguientes usuarios dieron las gracias a este tema: Sr.Mojon

3
Preguntas y respuestas / Re:vida.
« en: Julio 11, 2018, 03:32:54 am »
Podés intentar lo siguiente:
Código: [Seleccionar]
///Draw GUI
var xv = view_xview[0]; //Posición x de la view. Esta posición es la izquierda. Cambiá el 0 por el número de la view que estés usando.
var yv = view_yview[0]; //Posición y de la view. Esta posición es la parte de arriba.
var wv = view_wview[0]; //Ancho de la view.
var hv = view_hview[0]; //Alto de la view.

//Hacer que no se dibuje el efecto
draw_set_alpha(0);

//Si la vida es menor a 25, entonces...
if vida <= 25 {
    //Cambiar la visibilidad del efecto
    var alpha;
    alpha = (25-vida)/100;
    draw_set_alpha(alpha);
}

//Color del efecto
draw_set_color(c_red);

//Dibujar el efecto
draw_rectangle(xv, yv, xv + wv, yv + hv, false);

Si querés, echale un vistazo al proyecto donde hice las puebas.
Los siguientes usuarios dieron las gracias a este tema: Sr.Mojon

4
Preguntas y respuestas / Re:Ayuda
« en: Junio 24, 2018, 07:26:55 pm »
El problema es que al rotar la máscara de colisión cambia y a veces la función mp_potential_step trata de buscar una salida desde una posición con colisión.
En el evento Create declara una variable para controlar el ángulo del sprite
angulo = direction;
En el evento Step sustituye la variable image_angle por angulo.
Y en el evento Draw dibuja el sprite de esta forma
draw_sprite_ext( sprite_index, image_index, x, y, 1, 1, angulo, c_white, 1 );
Los siguientes usuarios dieron las gracias a este tema: Sr.Mojon

Páginas: 1