Mostrar Mensajes

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

Mensajes - Void

76
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.
77
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.
78
Preguntas y respuestas / Re:Funcion cambiada
Enero 31, 2018, 10:01:47 AM
Sería camera_get_view_x y camera_get_view_y, por ejemplo:

//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:

//GMS 1
view_xview[0] = x;
view_yview[0] = y;

//GMS 2
camera_set_view_pos(view_camera[0],x,y);
79
Usa view_current, por ejemplo:

[gml]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
}[/gml]
80
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.
81
Preguntas y respuestas / Re:evento step
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.
82
Preguntas y respuestas / Re:Calcular x
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.
83
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.
84
Preguntas y respuestas / Re:Deformación con Drag GUI
Diciembre 09, 2017, 09:10:30 AM
Si le ordenas a un sprite que se dibuje a 625 coordenadas del borde derecho obviamente se dibujara en lugares diferentes dependiendo del tamaño del display, si quieres que los sprites permanezcan en posiciones relativas a sus posiciones originales necesitas declarar las coordenadas de manera que cambien junto con el display.

Por ejemplo, si la GUI fue hecha con un display de 640 pixeles de ancho y 360 de alto en mente, entonces puedes conseguir un factor en relación a la diferencia de dicha expectativa y el display real, y usarlo para cambiar las coordenadas.

[gml]Factor_h = gui_width / 640;
Factor_v = gui_height / 360;

draw_sprite(sLeftArrow,0,gui_width-625*Factor_h,gui_height-80*Factor_v);[/gml]

Con eso la posición donde se dibuja el sprite seria relativa a la posición original aunque cambie el tamaño del display. Para aumentar el tamaño se cambiaría la escala por el factor, para este caso yo utilizaría el factor más pequeño para evitar que los sprites se sobrepongan o se salgan del display.

[gml]Factor_h = gui_width / 640;
Factor_v = gui_height / 360;
Factor_s = min(Factor_h,Factor_v);

draw_sprite_ext(sLeftArrow,0,gui_width-625*Factor_h,gui_height-80*Factor_v,Factor_s,Factor_s,0,c_white,1);[/gml]


Ahora, eso funcionaria con sprites que simplemente necesiten permanecer en su posición relativa en pantalla, pero quizás quieras sprites que permanezcan en posiciones relativas entre si mismos, entonces tendrías que calcular posiciones tomando en cuenta tamaños.

[gml]Factor_h = gui_width / 640;
Factor_v = gui_height / 360;
Factor_s = min(Factor_h,Factor_v);

draw_sprite_ext(sLeftArrow,0,gui_width-625*Factor_h,gui_height-80*Factor_v,Factor_s,Factor_s,0,c_white,1);
draw_sprite_ext(sRightArrow,0,gui_width-625*Factor_h+(64*Factor_s)+(21*Factor_h),gui_height-80*Factor_v,Factor_s,Factor_s,0,c_white,1);[/gml]

Y como esos habrá otros casos donde debes calcular posición, tamaño o ambos según el resultado que quieras conseguir.
85
Preguntas y respuestas / Re:Deformación con Drag GUI
Diciembre 08, 2017, 10:21:05 PM
No tengo el GM a mano, pero así sin probar nada, diría que el problema esta en que estas cambiando el tamaño de la GUI a un valor constante, y cuando la GUI no es lo suficientemente grande para cubrir ese tamaño debe estirarse.

Prueba eliminando display_set_gui_size(gui_width,gui_height); y cambiando gui_width=640; y gui_height=360; por gui_width=display_get_gui_width(); y gui_height=display_get_gui_height();

Y como dije, no tengo el GM a mano, así que tal vez display_get_gui_width y _height no sean los nombres correctos de las funciones, si no lo son busca en el manual las funciones correctas.
86
Mierda... mil disculpas nonoroman, justo antes de compilar el apk que puse acá estuve haciendo pruebas para ver por que podría ser que no funcionaba y quite el permiso de grabación, luego me olvide y compile el apk así como estaba, y como ya tenia una versión funcional en mi celular no me di cuenta.

Dejo otra vez el proyecto y el apk, ahora si con el permiso de grabación y probado de 0 en mi celular. Y de nuevo, perdona por ese error.
87
Hmmm... ok, vamos a hacer una pequeña prueba, voy a dejar acá el ejemplo de Yoyogames para grabar audio, modificado minimamente para hacerlo un poco más amigable con Android. Yo he probado el ejemplo en mi teléfono y funciona correctamente, prueba a ver si a ti te funciona.

Y dejo también la apk ya compilada, si el ejemplo no te funciona prueba con la apk, si la apk tampoco funciona entonces probablemente sea un problema de compatibilidad. Si la apk funciona pero el ejemplo no entonces debe ser un problema de configuración en el GM.

Edit:Las descargas no tenían el permiso de grabación, por lo tanto el apk se cerraba al intentar grabar, las descargas correctas estan en este post
88
Si, GMS 2 puede grabar audio en Android, y GMS 1 de hecho también puede pero el manual de GMS 1 no ha sido actualizado en algún tiempo así que no refleja esos cambios.

Empieza por ver que en Global Game Settings, en la pestaña de Android / Fire, en la subpestaña de Permissions tengas marcado RECORD_AUDIO.
89
En el programa ve al menú Account y logea con la cuenta donde activaste las licencias.
90
Preguntas y respuestas / Re:Problema con alpha
Noviembre 20, 2017, 01:12:55 AM
El problema es la condición del segundo if, estas pidiendo un número que sea al mismo tiempo mayor o igual que 20 y menor que 7, lo cual es imposible.

Cámbialo para que sea un número mayor o igual que 20 O menor que 7.