Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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 - Naitsabes0

Páginas: 1 2
1
Preguntas y respuestas / Re:No me resulta este ataque aéreo
« en: Marzo 02, 2018, 06:45:23 pm »
No se porque no me di cuenta, las balas se crean fuera del room (room_height+32), las estas creando en la parte de abajo del room. Solo pone 32 y arreglado.
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

2
Preguntas y respuestas / Re:Como logro ese efecto de creación?
« en: Enero 08, 2018, 06:41:40 pm »
Ejemplo
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

3
Para empezar tu código no hace múltiples objetos, puedes usarlo cuantas veces quieras y no tendrás ningún problema de miles de instancias, la función draw_sprite dibuja un sprite en la pantalla durante el step o frame actual y nada más, como el evento draw gui se ejecuta todos los steps o frames entonces tus sprites son dibujados cada frame.

Ahora de que tu método no es nada optimo no lo es, lo natural sería tener sprite de un solo corazón partido en cuatro y re-dibujarlo cuantas veces sea necesario para llenar la vida, pero bueno para hacer tú codigo un poco más optimo sin cambiar nada solo tienes que ponerlo así:

draw_sprite(spr_HUD_Vida_Red_Heart, 12-global.vida,72,16)

if global.vida <= 0
{
    global.vida_npc = 0
    effect_create_above (ef_explosion,x,y,0,c_purple);
    audio_play_sound (snd_Risa_Malvada,50,false);
    instance_deactivate_object(obj_Bola_Orbital_Triple);
    instance_deactivate_object(obj_Bola_Orbital_Estrella);
    instance_deactivate_object(obj_Escudo_Protector);
    instance_deactivate_object(obj_Rayo_Esfera);
    instance_deactivate_object(obj_Tiempo);
    instance_deactivate_object(obj_Modo_Contra_Reloj);
    instance_deactivate_object(obj_NPC_Espectador_amigo);
    instance_deactivate_object(obj_NPC_Cazador_amigo);
    instance_deactivate_object(obj_NPC_Caminante_amigo);
    instance_deactivate_object(obj_NPC_Caminante_Amigo_Plataforma);
    instance_deactivate_object(obj_NPC_Merodeador_amigo);
    instance_deactivate_object(obj_NPC_Centinela_amigo);
    instance_deactivate_object(obj_NPC_Infernal_amigo);
    instance_destroy()
}
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

4
Preguntas y respuestas / Re:Trampa péndulo
« en: Septiembre 23, 2017, 07:35:44 pm »
Asi te sera mas facil controlarlo
CREATE
velocidad=2
angulo=0
cambio=1
STEP
if angulo>180 or angulo<0 {cambio*=-1}
angulo+=(velocidad*cambio)

image_angle=-angulo
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

5
Preguntas y respuestas / Re:Puzzle de patrones
« en: Septiembre 17, 2017, 08:46:39 am »
Inténtalo así:
///Toooodo este código va en el step del jugador; ni más ni menos. Elimina el código antíguo y pega éste.
var vel = 5;
var hor = keyboard_check(ord("D")) - keyboard_check(ord("A"));
var ver = keyboard_check(ord("S")) - keyboard_check(ord("W"));
repeat(vel)
{
    if(place_free(x + hor, y))
        x += hor;
    else break;
}
repeat(vel)
{
    if(place_free(x, y + ver))
        y += ver;
    else break;
}
//Codigo encargado de los patrones alarma
var wall = instance_place(x, y, oBlock); //Encontrar el bloque con quien colisiona
if(instance_exists(wall)) //Si hay colisión
{
    with(wall)
    {
        if(!colliding) //Si no ha cambiado antes (para evitar parpadeo)
        {
            if(image_index == 0) //Si no está activo
                image_index = 1; //Activarlo
            else if(image_index == 1) //y viceversa
                image_index = 0;
               
            colliding = true; //Evitar nueva colisión
        }
    }
}
wall = instance_place(x, y, oBlockPattern); //Encontrar el bloque con quien colisiona
if(instance_exists(wall)) //Si hay colisión
{
    with(wall)
    {
        if(!colliding) //Si no ha cambiado antes (para evitar parpadeo)
        {
            if(image_index == 0) //Si no está activo
            {
                image_index = 1; //Activarlo
                ds_list_add(hecho, orden); //Meter el identificador en la lista, en orden de llegada.
            }
            else if(image_index == 1) //y viceversa
                image_index = 0;
               
            colliding = true; //Evitar nueva colisión
        }
    }
}
///Y tooodo éste en el step del controlador; ni más ni menos. Borra el código antíguo y pega éste.
var completed = true; //Comenzamos pensando que todos están completos
with(oBlock)
{
    if(image_index == 0) //Si se encuentra uno incompleto
        completed = false; //No se ha completado el puzzle
}
if(completed) //Si se ha completado el puzzle
    with(oBlock)
    {
        image_index = 2; //Ponerles la imagen verde
    }


//Otro puzzle
var completed = true; //Comenzamos pensando que todos están completos
with(oBlockPattern)
{
    if(image_index == 0) //Si se encuentra uno incompleto
        completed = false; //No se ha completado el puzzle
}
if(completed) //Si se ha completado el puzzle
{
    with(oBlockPattern)
    {
        image_index = 2; //Ponerles la imagen verde
    }
   
    var correcto = true; //Comenzamos pensando que se hizo correctamente
    for(var i = 0; i < ds_list_size(base); i++) //Recorremos toda la lista
    {
        var bs = base[| i]; //Obtenemos el valor i de la lista original
        var he = hecho[| i]; //Obtenemos el valor i en el orden de activación
        if(bs <> he) //Si los valores son diferentes (si se activaron en un orden incorrecto)
        {
            correcto = false; //No se ha completado;
            break; //Ya con eso no tenemos que recorrer más la lista
        }
    }
    if(correcto)
    {
        //Algo si el puzzle es correcto
    }
    else
    {
        //Supongo que se reiniciará el puzzle
        with(oBlockPattern)
        {
            image_index = 0; //Ponemos su estado a 'desactivado'
        }
        ds_list_clear(hecho); //Vaciamos la variable `hecho`
    }
}
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

6
Preguntas y respuestas / Re:Puzzle de colisiones
« en: Septiembre 15, 2017, 04:57:34 pm »
Te dejo un ejemplo adjunto.
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

7
Preguntas y respuestas / Re:Regeneración general
« en: Septiembre 10, 2017, 06:11:57 am »
Puedes usar alarmas, y simplemente comprobar que la vida sea menor a 18 antes de regenerarle.
///Evento create
global.vidab = 18; //Esta es la vida original, no debe modificarse en juego.
global.vida  = global.vidab; //Esta es la vida que se modificará en el juego
regenerador  = 1;
alarm[0] = room_speed; //Activar una alarma para regenerar cada segundo.
///Evento alarm 0
alarm[0] = room_speed;
if(global.vida <= (global.vidab - regenerador)) //Si tiene menos vida de la original (vida máxima)
{
    global.vida += regenerador;
}
Obviamente, si ya tienes utilizando la alarma 0, debes usar otra.
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

8
Preguntas y respuestas / Re:Pasar de una room a otra
« en: Septiembre 06, 2017, 09:41:41 pm »
puedes crear una variable que sirva de tiempo para que puedas hacer animaciones y eso en el evento y puedes crear un controlador un objeto especial que controle cada cuarto con este codigo

CREATE
Código: [Seleccionar]
tiempo=0

y puedes usar el mismo codigo que ya tienes para durar los segundos que quieras
STEP
Código: [Seleccionar]
if (instance_number(obj_Bloque) == 0){
tiempo+=1
aqui puedes añadir alguna animación o algo asi
 }

y cuando quieras pasar al siguiente cuarto solo ponle un limite al valor tiempo el que tu quieras por ejemplo 30
STEP
Código: [Seleccionar]
if tiempo>30
{
room_goto_next();
}
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

9
Preguntas y respuestas / Re:Una duda con los efectos
« en: Septiembre 04, 2017, 11:55:38 pm »
No tenes centrado el sprite
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

10
Preguntas y respuestas / Re:Busco como distorsionar la realidad
« en: Septiembre 04, 2017, 03:01:26 am »
Sólo arrastra el archivo .gmez a tu proyecto en GMS.
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

11
Preguntas y respuestas / Re:Experimento con enlaces
« en: Agosto 21, 2017, 09:27:20 pm »
Canal de música de uso gratuito ( ͡^ ͜ʖ ͡^) gracias
Pagina de recursos para videojuegos
y tu canal de yutu
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

12
Escudo_rayo:
create event:
alarm[0] = room_speed * 10; // 10 segundos para autodestruirse

alarm[0]:
instance_destroy();

step event:
// colocar el escudo rayo en el centro del personaje
x = personaje.x + 8;
y = personaje.y -12;
// detectar colisiones con enemigos
// radio = 48 px (mitad de 96)
cc = collision_circle(x, y, 48, objeto_padre, false, false);
if (cc)
{
     with(cc)
     {
       instance_destroy();
     }
}
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

13
En un evento Draw la última función de dibujo (draw_ ) se dibujará por encima de todas.
Entonces, como dice Void:

 obj_Tiempo
// evento Draw GUI
///Dibuja el tiempo actual
draw_set_halign(fa_middle);
draw_set_valign(fa_middle);
draw_set_color(c_red);
draw_sprite(spr_HUD_Tiempo,0,objJugador+48,objJugador-168);
draw_text(objJugador+24,objJugador-184,string(global.tiempo));

Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

14
Cambia el orden del código, dibuja primero el sprite, luego el texto.
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

15
Preguntas y respuestas / Re:Trato de armar una linterna pero me sale mal
« en: Agosto 14, 2017, 12:38:46 pm »
Los siguientes videotutoriales te podrían ayudar:
Video 1:
Video 2:

Espero te sirvan.
Los siguientes usuarios dieron las gracias a este tema: Naitsabes0

Páginas: 1 2