Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

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

Páginas: 1 2
1
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 09, 2019, 06:16:33 am »
Se agregan desde la lista de capas en el editor de rooms:

Los siguientes usuarios dieron las gracias a este tema: Fashion_Trozos

2
Preguntas y respuestas / Re:Mejor manera de crear fondos?
« en: Mayo 07, 2019, 05:50:36 am »
GMS 2 utiliza un sistema distinto al de GMS 1 para los tiles, es más eficiente pero más rígido, no se pueden colocar tiles desalineados con la grilla, y la grilla es automáticamente del tamaño de los tiles.

Para colocar tiles "desalineados" hay que usar otros métodos, por ejemplo, se puede usar otra capa para tiles ligeramente movida:


Pero esa es, en mi opinión, una solución de poco uso practico ya que afecta todos los tiles en la capa, una mejor alternativa seria cambiar el tamaño esperado de los tiles a la mitad, un cuarto o inclusive menos del tamaño real, y utilizar tiles en grupo o, mejor aún, pinceles para colocar los tiles en el room:




Finalmente, esta la opción de colocar sprites, sin objeto asociado, en una capa de recursos. Los sprites se comportan de la manera que se comportaban los tiles en GMS 1, al mantener presionado control mientras se colocan se puede ignorar la grilla, y la grilla se puede cambiar de tamaño:

Los siguientes usuarios dieron las gracias a este tema: Fashion_Trozos

3
Preguntas y respuestas / Re:Problema con arbol de dialogo en GML
« en: Abril 15, 2019, 11:02:52 am »
El código esta un tanto enredado, veo variables sin un uso especifico, pero voy a asumir que son variables que tendrán un uso a futuro.

Para cambiar el texto dibujado debes cambiar el valor de la variable Mensaje, el lugar para hacerlo seria en tu código para la tecla A.

El código que tienes ahí en ese momento destruye la instancia dibujando el mensaje sin importar que opción se elija, puedes cambiarlo de manera que en su lugar cambie el Mensaje según la opción, por ejemplo:

PULSACIN TECLA A


switch(menu_index) {

   case 2:
      Mensaje = "No tienes nada que decir?";
      break;
     
   case 1:
      Mensaje = "Y por que habría de saberlo?";
      break;
     
   case 0:
      Mensaje = "Estas perdido?";
      break;
}

Ahora bien, el problema con dejarlo así seria que ahora no tienes como eliminar el mensaje, yo recomendaría usar una variable para guardar la posición en el árbol de dialogo en la que estas, de manera que la Tecla A avance el dialogo y lo destruya si se encuentra al final.

Entonces agregaríamos la variable al evento create:

EVENT CREATE

///MENSAJE

alarm[1] = 140
object_set_visible (obj_mensaje, false);
//mensaje base
Mensaje[0] = "Ey, ¿ Que hace alguien como tú por aquí ?";
Mensaje2[0] = "Pregunta 2";
NPC = "???";
Icono = Icon_Mickael;
Dialogo_Pos = 0;

Y cambiamos el evento de Tecla A para que tenga en cuenta dicha variable:

PULSACIN TECLA A

if Dialogo_Pos == 0 {
Dialogo_Pos++;
   switch(menu_index) {
   
      case 2:
         Mensaje = "No tienes nada que decir?";
         break;
         
      case 1:
         Mensaje = "Y por que habría de saberlo?";
         break;
         
      case 0:
         Mensaje = "Estas perdido?";
         break;
  }
}
else if Dialogo_Pos == 1 instance_destroy();

Con eso ademas podrás poner más mensajes si así lo quieres:

PULSACIN TECLA A

if Dialogo_Pos == 0 {
Dialogo_Pos++;
   switch(menu_index) {
   
      case 2:
         Mensaje = "No tienes nada que decir?";
         break;
         
      case 1:
         Mensaje = "Y por que habría de saberlo?";
         break;
         
      case 0:
         Mensaje = "Estas perdido?";
         break;
   }
}
else if Dialogo_Pos == 1 {
  Mensaje = "No confío en los forasteros.";
  Dialogo_Pos++
}
else if Dialogo_Pos == 2 instance_destroy();

Otra cosa que que tal vez quieras es que las opciones se dejen de dibujar una vez que hayas elegido una respuesta, en ese caso usaríamos una variable de control para determinar cuando se dibujan.

Agregamos la variable en el evento create:

///MENSAJE

alarm[1] = 140
object_set_visible (obj_mensaje, false);
//mensaje base
Mensaje[0] = "Ey, ¿ Que hace alguien como tú por aquí ?";
Mensaje2[0] = "Pregunta 2";
NPC = "???";
Icono = Icon_Mickael;
Dialogo_Pos = 0;
Mostrar_Opciones = 1;

Cambiamos el valor de la variable cuando elegimos una opción:

PULSACIN TECLA A

if Dialogo_Pos == 0 {
Dialogo_Pos++;
Mostrar_Opciones = 0;
   switch(menu_index) {
   
      case 2:
         Mensaje = "No tienes nada que decir?";
         break;
         
      case 1:
         Mensaje = "Y por que habria de saberlo?";
         break;
         
      case 0:
         Mensaje = "Estas perdido?";
         break;
   }
}
else if Dialogo_Pos == 1 {
   Mensaje = "No confío en los forasteros";
   Dialogo_Pos++
}
else if Dialogo_Pos == 2 instance_destroy();

Y agregamos la condición al evento Draw para que solo dibuje las opciones cuando queremos:

///ELECCIONES

if Mostrar_Opciones == 1 {
   var i = 0;
   draw_set_font(Dialogo);
   draw_set_halign(fa_center);
   draw_set_color(c_black);

   repeat(buttons) {
      draw_set_color(c_black);
      if (menu_index == i) draw_set_color(c_blue);
      draw_text(menu_x, menu_y + button_h * i, button[i])
      i++;
   }
}
Los siguientes usuarios dieron las gracias a este tema: Cher3

4
Preguntas y respuestas / Re:Traduccion con fuentes
« en: Mayo 25, 2018, 03:04:47 am »
Suena a fuga de memoria, en tu script scr_traducido, por ejemplo, veo que usas font_add, y llamas ese script en un evento draw, eso quiere decir que, a menos de que estés limpiando las fuentes con código que no mostraste, por cada step que pasa estas creando una fuente nueva sin eliminar la anterior. Exceptuando para arrays, GMS no tiene recolector de basura, así que esas fuentes se quedan flotando en el limbo y saturando la memoria.
Los siguientes usuarios dieron las gracias a este tema: Dublan

5
Preguntas y respuestas / Re:Traduccion con fuentes
« en: Mayo 21, 2018, 02:39:16 am »
Probando con Hind Medium no tengo ningún problema, el texto se dibuja como debería:



Si dices que te esta pasando con varias fuentes entonces podría tratarse de un problema de incompatibilidad, quizás GM no esta juntando los caracteres apropiadamente, asegurate de tener la ultima versión de GMS, si no la tienes actualiza, y crea un respaldo de cualquier proyecto ANTES de abrirlo con la nueva versión.

Si ya tienes la ultima versión, o si al actualizar no se soluciona el problema, entonces no sé cual pueda ser el error, tocaría ponerse en contacto con el soporte de Yoyo.
Los siguientes usuarios dieron las gracias a este tema: Dublan

6
Preguntas y respuestas / Re:Traduccion con fuentes
« en: Mayo 15, 2018, 11:14:21 pm »
También uso FontForge, para encontrar la posición de un carácter puedes ir al menú Ver y usar la opción Ir a, o usar el atajo ctrl+alt+>, en la ventana que abre escribes o pegas el carácter y el programa te lleva a la posición que debería tener dentro de la fuente. Alternativamente, si colocas los caracteres en el rango de una fuente en GMS te dará sus posiciones, pero si hay varios seguidos los dará en secuencia, lo que puede ser algo molesto.

Sobre donde sacar fuentes fiables, no conozco de ningún lugar seguro, siempre dependerá del autor de la fuente que tanto esfuerzo le haya puesto, y si hablamos de fuentes gratuitas es difícil encontrar trabajos completos. Es cuestión de usar san google y esperar tener suerte, por ejemplo, para ver los caracteres chinos que querías dibujar use SimSun, que de acuerdo a un articulo explicando las complicaciones de hacer una fuente china para computadoras es una fuente que fue agregada a Windows XP de uso generalizado en China. Asumí que si era lo suficientemente buena para China sería lo suficientemente buena lo que buscaba.

Sobre hindi, en general las fuentes que se encuentran remplazan el alfabeto latino por el alfabeto devanagari, es por eso que si tratas de usar el valor Unicode de una letra devanagari solo consigues un espacio en blanco, pero si usas letras latinas aparece devanagari.

Lo que necesitas es una fuente que use ambos alfabetos, por ejemplo en fonts.google.com encontré Hind, una fuente de código abierto que tiene el alfabeto latino y devanagari en sus respectivas posiciones Unicode.
Los siguientes usuarios dieron las gracias a este tema: Dublan

7
Preguntas y respuestas / Re:Traduccion con fuentes
« en: Mayo 15, 2018, 02:04:05 am »
Descargue la fuente que estas usando, o al menos la que google encontró al buscar con ese nombre, y la fuente no tiene glifos para los caracteres que ocupas, los caracteres 32487,32493,28216 y 25103 están en blanco.

Que te aparezcan en show_message o en la ventana de creación de fuente no importa, eso es dibujado por windows y si la fuente usada no tiene los glifos requeridos windows usa fuentes alternativas que si los tengan para mostrarlos.

Al probar con una fuente más completa el texto es dibujado sin problema.
Los siguientes usuarios dieron las gracias a este tema: Dublan

8
Hmmm... así a primera vista me da la impresión de que estas usando un background que no cabe en la página de textura.

El tamaño predeterminado de la página de textura para módulos de Desktop y HTML5 es 2048x2048, y para el resto de módulos es 1024x1024. Si la imagen de donde estas sacando los tilesets es mayor que eso entonces GMS encoje la imagen para que quepa en la textura y durante el juego la alarga para que quede del tamaño que querías, obviamente hay una perdida importante de calidad en este proceso.

Si ese es en efecto el problema separa la imagen en varias para que GMS pueda acomodarlas en las página de textura sin problema, o bien, aumenta el tamaño de las páginas de textura (en Global Game Settings, la pestaña del modulo que usas y la sub-pestaña Graphics) a uno que pueda contener la imagen. Ten en cuenta que mientras mayor sea el tamaño de las páginas de textura menos compatible será tu juego.
Los siguientes usuarios dieron las gracias a este tema: Mecanne

9
Prueba a cambiar el Sleep Margin, puedes cambiarlo en Global Game Settings, en la pestaña de Windows al fondo, tiene un valor predeterminado de 1, prueba con 10.

O, si quieres probar en el ejecutable sin tener que compilar otro, abre el archivo options.ini que viene con el ejecutable y cambia la entrada SleepMargin a 10.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

10
Preguntas y respuestas / Re:Funcion cambiada
« en: Enero 31, 2018, 10:01:47 am »
Sería camera_get_view_x y camera_get_view_y, por ejemplo:

Código: [Seleccionar]
//GMS 1
x = view_xview[0];
y = view_yview[0];

//GMS 2
x = camera_get_view_x(view_camera[0]);
y = camera_get_view_y(view_camera[0]);

El argumento es importante, en GMS 1 podías usar view_xview o view_xview[0] y daba igual, en GMS 2 debes especificar la cámara si o si. Tampoco pues simplemente poner, por ejemplo, camera_get_view_x(0), porque 0 no es el indice de ninguna cámara, debe ser específicamente el indice de una cámara existente.

Ya que estamos en esto, para cambiar la posición de la cámara se usaría camera_set_view_pos(), por ejemplo:

Código: [Seleccionar]
//GMS 1
view_xview[0] = x;
view_yview[0] = y;

//GMS 2
camera_set_view_pos(view_camera[0],x,y);
Los siguientes usuarios dieron las gracias a este tema: Yuzo, Francos

11
Usa view_current, por ejemplo:

if view_current == 0{
  //Código que solo se ejecutara en la view 0
}

if view_current == 1{
  //Código que solo se ejecutara en la view 1
}
Los siguientes usuarios dieron las gracias a este tema: Yuzo, Fa ._.

12
Lo primero sería ver que el enemigo se encuentre fuera de la view, luego calcular el ángulo desde el centro de la view hacia el enemigo, finalmente calcular el punto en el borde de la view donde se dibujaría el icono, esta última parte es un poco más compleja que el resto, afortunadamente en este tema de stackoverflow nachoab dejo una implementación en JavaScript del algoritmo necesario que se traduce casi literalmente a GML.

Dejo un ejemplo.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

13
Preguntas y respuestas / Re:evento step
« en: Enero 04, 2018, 11:01:03 pm »
Ehh... no. Cada frame ejecuta los tres eventos, el evento Begin Step se ejecuta al inicio del frame, el evento Step se ejecuta en el medio, el evento End step se ejecuta al final justo antes de iniciar con los eventos Draw. En los espacios entre los tres eventos se ejecutan varios de los otros eventos, por ejemplo, las alarmas se ejecutan entre Begin Step y Step normal, los eventos de colisión se ejecutan entre Step normal y End Step.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

14
Preguntas y respuestas / Re:Calcular x
« en: Enero 02, 2018, 11:00:07 pm »
En este tema de stackoverflow se discute como encontrar si dos lineas colisionan y en que punto lo hacen, también hay enlaces a implementaciones en código que puedes traducir a GML. La implementación en java de pgkelley es particularmente simple de entender.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

15
Se refieren a la SDK de servicios de Google Play, pero de todos modos la extensión oficial actual de Yoyo usa la versión 9.6.1 para Android y la versión 7.16.0 para iOS, así que igual no hay problema.

Si en el futuro Google decidiera pedir una versión superior a esa, o si actualmente alguien quisiera utilizar un SDK más actual siempre podría escribir su propia extensión, esa fue una de las ventajas del sistema de extensiones, no se depende exclusivamente de Yoyo para todo.

Si algo va a romper el exportador de alguna plataforma va a ser un cambio que afecte el motor interno, no las extensiones.
Los siguientes usuarios dieron las gracias a este tema: Yuzo

Páginas: 1 2