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

16
Ok, Me tomo un poco más de tanteo del que me gustaría admitir, pero ya encontré la forma, o al menos una forma.

Configura la view 1 igual a la view 0, las views deben comportarse igual.

Si no lo has hecho, desactiva el dibujo de color de fondo en la room.

Cambia los valores de todas las luces para que le resten las coordenadas de la view al dibujarse.

En el objeto controlador/background, en Draw Begin, borra el código que tenías, en su lugar necesitamos asignar la view 0 a la superficie nueva, y comprobar si la view activa es la 0 para limpiar la pantalla con un draw_clear_alpha, si la activa es la 1 dibujar el background. Debería quedarte algo así:

view_surface_id[0] = Images;
if view_current = 0{
  draw_clear_alpha(0,0);
}
else {
  draw_background(background1,0,0);
}


Usamos la view 0 para dibujar en la superficie porque es la primera en dibujarse.

En el evento Draw End elimina el draw_reset_target, ya no es necesario. Coloca el resto del código en Draw End en un if que compruebe que la view activa es la 1.

Dejo un ejemplo.
17
Lo del rastro que dejan los sprites al moverse se puede solucionar limpiando la surface con un draw_clear_alpha(0,0) en el Draw Begin justo cuando se pone la surface nueva, pero no habia considerado el movimiento de la view y como afectaria comandos de dibujo con coordenadas definitivas.

Es ciertamente posible mover las capas de tiles por completo, sin tener que mover uno por uno cada tile, pero haciendo la prueba con este método en particular, da más dolores de cabeza que los que resuelve.

Mover al mismo tiempo la view y los tiles hace que algunos de los tiles que deberían dibujarse en pantalla queden "fuera de la view" según los cálculos del GM, y por lo tanto el GM no los dibuja, resultando en una imagen incompleta.

La única forma de resolver esto sería no mover la view para nada, en su lugar tener variables que hagan de cámara que le digan a los objetos y tiles donde deben dibujarse. Como dije, un dolor de cabeza.

Desde un principio fueron los tiles los que complicaban este efecto, como no poseen ninguna función para dibujarlos a pedido, hay que agarrarlos cuando se están dibujando normalmente.

Sobre una solución más simple... bueno, no sé si será más simple pero tratando de improvisar, me parece recordar que el GM tiene una función para pasar el contenido de una view a una surface, quizás esto podría utilizarse para adquirir la máscara para eliminar las áreas del background de la surface de luz sin tener que afectar la view principal del juego, pero sería algo que tendría que ponerme a probar cuando tenga el GM a la mano.
18
Puedes usar una segunda surface donde dibujes los sprites y tiles, que luego podrás utilizar como mascara para eliminar las áreas de la surface con el efecto donde solo hay background.

Usa el objeto donde dibujas el background como objeto controlador.

Crea una nueva surface, en esta surface se dibujará todo lo que no sea background o luz.

Pasa el draw_background del evento Draw al evento Draw Begin.

Justo después del draw_background agrega un surface_set_target y ponle la nueva surface, esto hará que todo lo que no se especifique para otra surface sea dibujado en la nueva.

En el evento Draw End pon draw_reset_target. Esto hará que ya no se dibuje nada más en la surface nueva.

Ahora, aún en el evento Draw End coloca este código:

surface_set_target(light);
draw_set_blend_mode_ext(0,5);
draw_surface(Nueva_surface,0,0);
draw_set_blend_mode(bm_normal);
surface_reset_target();


Eso eliminará los espacios "en blanco" de la surface con el efecto de luz.

Dibuja la nueva surface para que todo aparezca en pantalla como si se dibujara normalmente.

Dibuja la surface de luz con el código que ya tenías.

Como dije, todo esto desde el objeto donde dibujas el background.
19
La variable gravity afecta la velocidad del objeto, esa es la variable que debes restablecer.

En el if (y>765) agrega speed = 0;
20
El último argumento en draw_sprite_ext es el alpha, osea la opacidad, un valor de 0 significa completamente transparente.

Por eso es que no te tira un error, si lo dibujando, pero lo lo esta dibujando "invisible." Cambia el 0 por un 1.

El segundo código te da error porque asset_get_index trabaja con strings, no indices. Podrias cambiarlo a asset_get_index("sprnivel2") para eliminar el error, pero como el siguiente draw_sprite_ext igual tiene el alpha en 0 igual dibujará el sprite completamente transparente.

21
Grafismo & Composición / Re:Dibujo a mano
Abril 24, 2015, 09:31:35 AM
Muramasa the Demon Blade usa animación esqueletal por shader, donde se modifican los vertices de las texturas para deformar las imágenes y así crear una animacion fluida. Sé que Rayman Origins también lo hace pero siempre me parecio que Metal Slug era pixel-art puro y duro.

Por ejemplo, acá dejo una de las páginas de textura de Yuzuruha:



Y acá tenemos el resultado final ya armado:

22
Preguntas y respuestas / Re:Pulsaciones en android
Abril 22, 2015, 01:16:20 AM
Solo me gustaría señalar, viendo que nadie lo ha hecho, que el GMS en dispositivos móviles cuenta dos taps veloces consecutivos como un click izquierdo (el primero) y un click derecho (el segundo).

Probablemente sea por eso que sientes tu código original un poco lento. Cada segundo tap está siendo ignorado.

Puedes cambiar dicha configuración con la función device_mouse_dbclick_enable().
23
Preguntas y respuestas / Re:Duda modo debug android
Abril 19, 2015, 10:48:54 PM
Si tienes una red inalámbrica puedes configurar el GMS y el Yoyo Runner para pasar el juego por wi-fi, que es mucho más rápido que tener que instalar el Yoyo Runner cada vez que se prueba el juego con el dispositivo pegado por cable.

http://help.yoyogames.com/entries/23363366-GameMaker-Studio-Android-SDK-and-NDK-setup-
24
Usa la funcion display_reset para determinar el cantidad de antialiasing que debe usarse.

Puedes usar la variable display_aa para determinar el nivel de antialiasing del que es capaz el equipo.

Alternativamente puedes usar un shader de Antialiasing aproximado:

https://marketplace.yoyogames.com/assets/1360/fxaa-shader
25
Usa las funciones asyncronimas de http del GM para adquirir la hora de http://www.timeapi.org/utc/now

Luego utiliza las funciones de string para separar los valores de año, mes, dia, hora, minuto y segundo.

Ten en cuenta que http://www.timeapi.org/utc/now da la hora en UTC.
26
La ruta especificada debe existir, la función save_game NO crea los directorios necesarios si estos no existen.

Si este es el problema puede solucionarse con la función directory_create, para crear la ruta antes de crear el archivo.
27
Preguntas y respuestas / Re:Exportar IOS | GMS
Noviembre 25, 2014, 10:01:10 PM
Cita de: Castejoncio en Noviembre 25, 2014, 10:07:21 AM
Ilegal no es en absoluto... Mientras compres el sistema operativo no estras infringiendo ninguna ley... Lo unico es que Apple no da soporte a sistemas operativos montados en maquinas no apple... Pero es legal, ya que has adquirido las licencias.

Inmoral?? No me queda claro el porque... Bueno... Piensas que si te gusta apple pues con todas las de la ley... Pero... Y Si lo unico que a uno le gusta de la manzana mordida es su sistema operativo??? A mi por ejemplo los equipos me parecen caros de cojones, pero veo que en cuanto a sistema operativo va bastante por delante de los demas (desde mi parecer)... Entonces, la moralidad es depende de quien lo mire... Yo uso iphone e ipad... Pero porqe ios no se puede instalar en una tablet que lleve android... Seguramente tendria una xperia z de tablet con ios... Y un galaxy note 4 como telefono tambien con ios.

De hecho, en las condiciones de las licencias que estas comprando se incluyen prohibiciones sobre usar el software en otro hardware que no sea el de Apple.

Cita de: SOFTWARE LICENSE AGREEMENT FOR MAC OS X2. Permitted License Uses and Restrictions.
...
I. Other Use Restrictions. The grants set forth in this License do not permit you to, and you agree not to, install, use or run the Apple Software on any non-Apple-branded computer, or to enable others to do so. Unless otherwise permitted by the terms of this License: (i) only one user may use the Apple Software at a time, and (ii) you may not make the Apple Software available over a network where it could be run or used by multiple computers at the same time. You may not rent, lease, lend, sell, redistribute or sublicense the Apple Software.
...

6. Termination.
This License is effective until terminated. Your rights under this License will terminate automatically or otherwise cease to be effective without notice from Apple if you fail to comply with any term (s) of this License. Upon the termination of this License, you shall cease all use of the Apple Software and destroy all copies, full or partial, of the Apple Software. Sections 4, 5, 6, 7, 8, 9, 12 and 13 of this License shall survive any such termination.

Que por cierto, no sé donde deja esto el rentar Macs en la nube en estado de legalidad. Pero el punto es que usar una hacintosh incumple los términos de la licencia, lo que la invalida y vuelve ilegal el seguir usando esa copia del os.

Y sobre la moralidad, bueno, ya que sabemos que las hackintosh son ilegales es obvio por que también sería considerado inmoral.
28
Preguntas y respuestas / Re:Error SDK
Noviembre 21, 2014, 12:35:47 AM
Actualiza tu GMS, el error de zipaling fue arreglado ya hace un par de meses.
29
Preguntas y respuestas / Re:Traduccion
Noviembre 04, 2014, 10:44:06 PM
Cita de: kostra en Noviembre 04, 2014, 10:32:16 PM
Cita de: Killer en Noviembre 04, 2014, 09:50:10 PM
Usando la función http_get se puede enviar un texto al traductor de google y recibir una string en formato json con el texto traducido y algunos datos adicionales, usando las funciones de strings del GM dicha string se puede limpiar para contener solo el texto traducido.

No sé si este es el método que el creador de esa extensión uso, pero es una manera de hacerlo.
si usa google translator, en vez de un juego traducido le saldrá una cagada xDD

PD: sandbox, me has pillao manía xd

Entonces supongo que no te molestaste en ver el enlace que el dejo en el primer post, el enlace a la extensión que traduce automáticamente de cualquier idioma a cualquier idioma, el enlace a la extensión que explícitamente dice que utiliza Google Translate, el enlace que él dice es lo que quiere hacer:

https://marketplace.yoyogames.com/assets/317/multilanguage-and-translate

Ya sabes, ESE enlace.
30
Preguntas y respuestas / Re:Traduccion
Noviembre 04, 2014, 09:50:10 PM
Usando la función http_get se puede enviar un texto al traductor de google y recibir una string en formato json con el texto traducido y algunos datos adicionales, usando las funciones de strings del GM dicha string se puede limpiar para contener solo el texto traducido.

No sé si este es el método que el creador de esa extensión uso, pero es una manera de hacerlo.