Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Dieyovz01 en Febrero 01, 2016, 03:48:37 AM

Título: Problema con la resolución del juego en dispositivos móviles
Publicado por: Dieyovz01 en Febrero 01, 2016, 03:48:37 AM
Hola Comunidad GM:

Tengo ya bastante tiempo buscando una solución a mi problema el cual es el siguiente:

Tengo ya un prototipo de un juego para android funcionando bien en windows (con botones virtuales y todo), cuando lo pruebo en windows se ve asi:
http://i.imgur.com/BFuvypi.png

Pero cuando lo pruebo en mi celular android se ve así:
http://i.imgur.com/FlseavG.png

Porfavor, alguien que ya haya publicado juegos de plataformas en la playstore, ayúdeme a solucionar mi problema, necesito saber una manera sencilla de como hacer que la resolución de mi juego se adapte automáticamente a cualquier tamaño de pantalla en los dispositivos android, he buscado tutoriales en youtube y no hay ningún tutorial de como hacer eso, todos se quedan a medias.

Espero que me puedan ayudar, muchas gracias.

Pd: Mi juego usa views que siguen al jugador, no se si esto influya en algo, soy nuevo en esto de android. :-b
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: josesito1432 en Febrero 01, 2016, 07:13:49 AM
mandame el proyecto, comprimido, en gmz o  gmx ye lo miro creo que es una configuracion no mas en la seccion android, o puede ser tema de las views tambien
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: bygdle en Febrero 01, 2016, 12:55:57 PM
Naah, no es naah de eso. Lo que pasa es que los elementos en GUI, al igual que las virtual ley, deben dibujsrse usando como referencia las funciones display_get_gui_width(), y display_get_gui_height()
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: Dieyovz01 en Febrero 01, 2016, 11:58:28 PM
No entiendo bien eso, no habrá un ejemplo de algún juego ya creado en android?
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: bygdle en Febrero 02, 2016, 12:09:23 AM
Pues de parte mía no habrá ningún ejemplo :B
Te voy a explicar, en el evento draw GUI normalmente haces esto:
[gml]
draw_sprite(el_sprite,0,32,32);
[/gml]
(Ignora las posiciones xD)

Pero ese es el error. Tanto en la GUI como con las virtual key las posiciones absolutas son un error. Debes usar posiciones relativas al display
De esta manera yo lo hago:
[gml]
var w = display_get_gui_width(); //Sacamos el anchor del display del dispositivo
var h = display_get_gui_height(); //Sacamos el largor del display del dispositivo
var x32 = w / (w/32); //Sacamos el valor que equivaldría a 32 pixeles en el display del disposivito
var y32 = h / (h/32); //Lo mismo que lo de arriba sólo que en vertical

/*
Ahora imaginemos que el sprite que quieres dibujar mide 64*64:
*/

draw_sprite_stretched(el_sprite,0,x32,y32,x32*2,y32*2);//Dibujamos el sprite en las posiciones 32 y 32 DEL DISPLAY DEL DISPOSITIVO, y el sprite está dimensionado a 32*2 (64)px DEL DISPLAY DEL DISPOSITIVO. Lo que hace que se escale como debería en cualquier resolución :B
[/gml]

(Lee los comentarios (texto en verde :v) del código)
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: quiero aprender en Febrero 02, 2016, 12:10:55 AM
Yo siempre utilizo 640*352 me funciona a mi, bueno aunque la anchura la puedes hacer más grande pero procura usar las view pero esos si las view tiene que ser de 640*352 y en Global Game Settings en la pestaña Android >> Graphics y marcas el circulo Any device supported y listo espero que te sirva pero tienes que adaptar los sprites a la pantalla.
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: bygdle en Febrero 02, 2016, 12:14:57 AM
"Quiero aprender" (usuario xD), no se ha preguntado una resolución buena para los dispositivos, para eso ya se ha preguntado 10.000 veces más xD
PD: La resolución que tú usas también está algo mal dimensionada, deberías usar resoluciones 16:9, como 640*360 xD
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: somnus en Febrero 02, 2016, 09:06:47 AM
hola, este es un problema muy comun y generalmente GMS se encarga de esto solo, hay maneras de que adaptes tu view o pantalla a diferentes dispositivos, y este si es un tema que se complica un poco, lo que yo aconsejo es que para que tus pantallas tengan un ratio que se adapte facilmente, por lo general yo he hecho algunos juegos que son para dimensiones de IPHONE 5,

1136 de ancho
640 de alto, y se ha escalado bien en PC y android
solo lo que he puesto es que mantenga el aspect ratio, en la configuracion de las diferentes plataformas vienen opciones para que eligas como quieres que se muestre el juego
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: kostra en Febrero 03, 2016, 07:47:26 PM
1280x720 RULZ!! D:

eso, más lo que dice Niu :v
Título: Re:Problema con la resolución del juego en dispositivos móviles
Publicado por: Grossu Arts en Febrero 05, 2016, 02:32:09 PM
Cita de: NiuWeb en Febrero 02, 2016, 12:09:23 AM
Pues de parte mía no habrá ningún ejemplo :B
Te voy a explicar, en el evento draw GUI normalmente haces esto:
[gml]
draw_sprite(el_sprite,0,32,32);
[/gml]
(Ignora las posiciones xD)

Pero ese es el error. Tanto en la GUI como con las virtual key las posiciones absolutas son un error. Debes usar posiciones relativas al display
De esta manera yo lo hago:
[gml]
var w = display_get_gui_width(); //Sacamos el anchor del display del dispositivo
var h = display_get_gui_height(); //Sacamos el largor del display del dispositivo
var x32 = w / (w/32); //Sacamos el valor que equivaldría a 32 pixeles en el display del disposivito
var y32 = h / (h/32); //Lo mismo que lo de arriba sólo que en vertical

/*

Muy
Ahora imaginemos que el sprite que quieres dibujar mide 64*64:
*/

draw_sprite_stretched(el_sprite,0,x32,y32,x32*2,y32*2);//Dibujamos el sprite en las posiciones 32 y 32 DEL DISPLAY DEL DISPOSITIVO, y el sprite está dimensionado a 32*2 (64)px DEL DISPLAY DEL DISPOSITIVO. Lo que hace que se escale como debería en cualquier resolución :B
[/gml]

(Lee los comentarios (texto en verde :v) del código)

Muy bueno, no podrás hacer un ejemplo con 2 Sprite asi vemos como se implementa.