Noticias

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

* Sponsor

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

Páginas: 1 2
1
omarmakero  1ero todo lo puedes lograr hacer con game maker, solo es el encontrar como hacerlo.
Lo que debes hacer es reposicionar las coordenadas X, Y, del string para eso crea la variables XX, YY, y usas algo como esto...
Ejemplo; draw_text(xx,yy,"mi dialogo")
cuando la declares recuerda colocarles valor 0 que equivale a la esquina superior izquierda de la pantalla.
luego solo reposicionas, algo asi:
var b;
b=point_direction(xx,yy,room_width/2,room_height/2) //devuelve la direccion en grados desde la pision actual y el centro de la pantalla
if ((xx+5<room_width/2) and (yy<room_width/2)) then
{direction=b; speed=3;}else {speed=0;}

Esto es solo una idea pero hay miles de fomas de hacerlo.

2
Ah, ahora entiendo lo que quieres, en ese caso lo mas simple es hacer que el script crear_sala cree una puerta en la entrada de cada sala, y despues de que generar_laberinto haya corrido eliminar todas las puertas menos la última creada, de manera que solo la última sala tenga puerta.

3
Preguntas y respuestas / Re:Fondos de escenarios animados
« en: Enero 21, 2021, 06:41:46 pm »
Saludos OmarMakero

Existen varias formas de hacerlo pero depende del tipo de escenario que tengas en mente, yo uso un truco que conlleva arrays
/// Event Create
bg[0] = bg_0;
bg[1] = bg_1;
bg[2] = bg_2;
bg[3] = bg_3;

bg_numb = 4;  //numero de backgrounds
bg_index = 0;  //indice del background
bg_speed = 0.25;  //velocidad en la animacion
/// Event draw
// Animación del background
bg_index += bg_anim;
if (bg_index >= bg_numb)
  bg_index = 0;

draw_background(bg[floor(bg_index)], x, y)
Y ya en el evento draw pongo un draw_background y hago que dibuje la array. Ya con eso puedes tener un escenario animado, y tambien sugiero que mantengas los valores de "bg_speed" entre 0 y 1

4
OmarMakero buena sugerencia, pero no deberia ser
if !foto
Sino:
if (foto != "") screen_save(foto);
Pues esas funciones solo devuelven cadenas

5
Preguntas y respuestas / Re:iniciar animacion al iniciar el juego
« en: Noviembre 08, 2020, 06:38:54 pm »
Saludos T1ag0

Eso es algo que puedes hacer sabiendo cuando debes poner cada cosa

Por ejemplo puedes poner unas variables y unas alarmas para cada cosa, en tu caso
/// Event Create
texto = "" //El texto que se mostrara primero
global.ifMove = false; //Para permitir movimiento
alarm[0] = room_speed //Tiempo para que se muestre el otro texto
/// Event alarma[0]
texto = "Ya te puedes mover" //El segundo texto que se vaya a mostrar
global.ifMove = true; //Permitir moverle al ...
/// Event Draw
draw_text(320, 240, texto) //Se dibujara lo que tenga la variable "texto" en las cordenadas que quieras (yo puse esas de prueba)
Y por si... Por ejemplo quisieras que ya no se muestre texto al pulsar la primera tecla, solo debes poner un:
/// Evento de tecla cualquiera
instance_destroy();
Y listo. Lo otro de mostrar una animacion... Pues no se a que te refieres (?), pero si queres mostrar una animacion desde tu objeto personaje, solo tenes que usar un sprite_index y una alarma para inhabilitar la animacion

6
Preguntas y respuestas / Re:Programar un puente para mi juego
« en: Julio 18, 2020, 02:35:19 am »
Si tienes alguna duda avísame.

No estoy seguro de a qué puente te referías. En el archivo puedes ver un juego con imagen vista desde arriba.


7
Preguntas y respuestas / Re:Acciones en el el boton
« en: Junio 28, 2020, 01:38:50 am »
Saludos OmarMakero, voy a intentar darte una soluccion pero si no funciona te sugeriria que cambies un poco tu codigo

Intenta usar lo siguiente en tu codigo al presionar la tecla enter
if (keyboard_check_pressed(vk_enter) && presion) {
   // Intenta gestionarlo con un switch
   switch(boton)
   {
     case 0:
     if (global.lamis == 1) {
       global.Jugador = global.nom;
       global.mision = global.lamis;
       global.capa = global.cap;
       global.vidas = global.vid;
       global.vidas_maxima = global.vm;
       global.espada = global.esp;
       global.elementos = global.elm;
     }
     boton = 0; break;
     case 1:
     boton = 1; break;
     case 2:
     boton = 2; break;
   }
   presion = false;
}
Bueno espero te sirva, aunque me hubiera servido un poco mas saber como funciona ese codigo y una explicacion mas detallada de tu error

8
Preguntas y respuestas / Re:Hacer un fade que siga la view
« en: Mayo 28, 2020, 04:53:45 pm »
Saludos OmarMakero, justo ahora voy a darte una solucion y sin tener que usar sprites para ello, esta solucion es mas optima

obj_FadeOut
/// Event Create
fuerza = 1;

/// Event Step
if (fuerza <= 0)
instance_destroy() //si ya no tiene fuerza pues destruir
else
fuerza -= 0.08 // restarle en cada paso a la fuerza

/// Event Draw
draw_set_alpha(fuerza)
draw_set_color(c_black)
draw_rectangle(view_xview[0], view_yview[0], view_wview[0], view_hview[0], false)
draw_set_alpha(1)

Ese fue el primer metodo que utilice para hacer el efecto FadeOut, esta un poco sencillo pero funciona, lo unico que tienes que hacer es usar un instance_create() en el evento y momento que quieras

espero te haya servido, y si esta muy simple para tu gusto, conozco otros metodos para hacer ese efecto, aunque primero calibra y mejora a tu gusto

9
Preguntas y respuestas / Re:Hacer que la view se mueva lentamente
« en: Mayo 23, 2020, 06:23:47 pm »
Para la view debes usar variables que indiquen la posición final y luego desplazar la view poco a poco desde la posición actual hasta la posición final.
Para ello puedes usar la función lerp
https://www.comunidadgm.org/desarrollo-de-scripts/interpolacion-lineal-en-gm8/
view_xview[0] = lerp(x_inicial, x_final, t);
view_yview[0] = lerp(y_inicial, y_final, t);
t += 0.05;
if (t > 1) t = 1;
la variable t va de 0 a 1, incrementando un poco en cada step.

Para hacer el cambio entre rooms lo más fácil es utilizar las transiciones predefinidas. Las transisiciones solo funcionan en GM8, se eliminaron en GMS.
Al cambiar de room, debes guardar en varibles globales la posición en la que debe aparecer el personaje en la siguiente room
if (room == rm0) {//primera room
    if (x > room_width) {//si se sale de la room por la derecha
        transition_kind = 15; //Push from right
        transition_steps = room_speed * 0.5; //duración de la transición
        global.xx = 0; //posición en la que va a aparecer
        global.yy = y;
        room_goto(rm1); //cambiar de room
    }
}
Adjunto un ejemplo.

10
Grafismo & Composición / Minitutoriales Pixel Art
« en: Mayo 19, 2020, 08:07:03 pm »
Les traigo una pagina con muchos minituroriales sobre pixel art, hay de todo, desde dibujar rocas, explosiones, animaciones, tiles, cuadros de dialogos, etc.
https://blog.studiominiboss.com/pixelart


11
Preguntas y respuestas / Re:Hacer un dialogo entre dos o más npcs
« en: Mayo 19, 2020, 06:39:07 pm »
Hola OmarMakero, lo que pides puede ser un poco dificil, bueno admenos para mi si tiene que ser una escena automatica, pero en la parte del dialogo creo te puedo ayudar

Bueno el metodo que te sugiero es para un dialogo con un icono del personaje en la barra de texto, bueno aunque puedes modificarlo para que le quede bien a un Juego de Zelda

/// Evento Create
texto[0] = " "
texto[1] = " "
texto[2] = " "
texto[3] = " "
texto[4] = " "
txt = 0; //Contador del arreglo
turno_dialogo = 0; // 0 = abuelo, 1 = nieto, tambien servira para que se dibuje la subimagen del icono de quien esta dialogando

/// Event Step
/*  Explicacion
El turno del dialogo se establece segun el arreglo a quien quieres que pertenezca
Por ejemplo, que los primeros 3 arreglos sean del abuelo y los ultimos 2 del nieto
Aunque el numero de arreglos del array depende de ti
*/
if (txt == 0) turno_dialogo = 0;
if (txt == 3) turno_dialogo = 1;

/// Draw Event
draw_set_alpha(0.6)
draw_set_color(c_black)
draw_rectangle(8, 8, room_width-8, 48, false) // La barra del dialogo, la calibras tu

draw_set_alpha(1)
draw_sprite(spr_icon_dialogo, turno_dialogo, 10, 10) //Se dibuja la subimagen de quien esta dialogando

draw_set_color(c_white)
draw_set_font(font)
draw_set_halign(fa_left)
// Nose si vas a querer dibujar el texto con "draw_text" o "draw_text_ext"

Bueno puede que no lo haya escrito completo, pero es porque no conozco tu metodo para trabajar con las array y con las cadenas, puedes probar para ver si funciona con tu codigo, admenos a mi me funciona para dialogos tipo FF

12
Te dejo un ejemplo de como hacer los corazones estilo Zelda.
Un corazon completo es igual a 1 de vida, cada 0.25 de vida es una parte de un corazon.
Hay un limite de 10 corazones en horizontal(columnas).

13
Preguntas y respuestas / Re:Como hacer un dialogo entre dos personas
« en: Mayo 13, 2020, 05:50:45 pm »
Ah bueno, en ese caso conozco un método sencillo que es a cada instancia en particular de los personajes le establezcas unas variables que tomarán la posición de tu array con los diálogos guardados.

Aquí hay un video de un usuario usando este método



14
Interesante, por acá investigando un poco mas del tema, al parecer GM usa ciertas posiciones desactivadas por control... fíjate en esta tabla para armar tu sprite:

https://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/fonts/font_tables.html

Páginas: 1 2