Estimados, alguno sabe como hacer algún código, objeto o lo que sea que controle la pantalla de los celulares, les explico, tengo una apk la cual contiene publicidad y se vee bien en mi teléfono, sin embargo en otros dispositivos la publicidad banner se distorsiona y aparece en lugares que no e puesto y no permite jugar a los usuarios.
alguien podría darme una manito, se lo agradezco de antemano.
http://www.comunidadgm.org/preguntas-y-respuestas/problemas-con-la-resolucion/msg116463/#msg116463
por lo que acabo de leer no sirve que el objeto ads quede asi: ads_enable(400, 0, 0); que es como lo tenia configurado y a mi se me veía bien.
entonces para poder configurar ese banner en la parte superior de la pantalla centrado, pero estandar para todos los telefonos, como debo hacerlo? mis rooms son de 640x480 y la posición de juego es solo horizontal.
tengo un objeto que en el evento create puse
gui_width=room_width
gui_height=room_height
y en draw
display_set_gui_size(gui_width,gui_height)
estara bien de esa manera???
Una cosa son las medidas del GUI y otra son las de la habitación. Ninguna depende de la otra. Preguntar por las medidas de la habitación no es buena solución, porque a pesar que las medidas no cambien en el juego y se mantengan, lo que cambia de un teléfono a otro es el tamaño del display.
Si quieres que el banner quede centrado horizontalmente, se debe conocer cierta información:
1) El ancho del display, que varía de un dispositivo a otro. Para esto se usan la función display_get_gui_width()
2) El ancho del banner. Para esto está la función ads_get_display_width()
Luego, sólo queda dividir el ancho del display entre dos para obtener el centro, a esta posición se le resta la mitad de la anchura del banner y con esto debería quedar centrado el baner horizontalmente.
Hola penumbra, mira e escrito este código el cual me deja el banner exactamente donde quiero, pero mi inquietud es si con este código el banner se ajustara en la pantalla de todos los teléfonos igual que en la mía y no se distorsionara:
Evento Create:
posx=display_get_gui_width()/4-ads_get_display_width(2)
posy=display_get_gui_height()==0
///banner
ads_enable(posx, posy, 1);
La idea de usar display_get_gui_width() para determinar la posición en X está correcta, aunque no sé por qué divides entre 4, pero si te sale centrado, es que probablemente el ancho del banner coincide con la mitad del ancho del display. Pero la idea está bien.
Si el display lo vas a colocar exactamente en y = 0, no tiene caso usar posy=display_get_gui_height()==0 y la última instrucción puede quedar
[gml]ads_enable(posx, 0, 1)[/gml]
Incluso, mientras sea un valor relativamente pequeño, la posición y puede tener un valor absoluto fijo como 10 o 20, ya que en prácticamente cualquier dispositivo, 10 o 20 pixeles sigue siendo una posición "alta" o "arriba". Pero bueno, imagino que quizás lo dejes en 0 y no habrá problema
Gracias penumbra, finalmente el código lo deje así:
posx=display_get_gui_width()/4-ads_get_display_width(2)
///banner
ads_enable(posx,0, 1);
voy a probarlo con teléfonos de distintos display haber como anda.
una ultima cosita, en mi juego tengo unos textos ordenados con valores fijos, de esta manera:
//Fichas del juego
draw_text(550,7,vidas);
draw_text(505,7,"Fichas ");
esto afectara también que en otros display se desordene el tema???
Cita de: gameforever en Septiembre 10, 2015, 09:29:45 PM
esto afectara también que en otros display se desordene el tema???
Sí, todo lo que tenga que ver con posición en pantalla de elementos gráficos tiene que pensarse para trabajar con valores relativos. 550 y 507 puede quedar cercano al borde derecho de algunos display, pero en otros de mayor anchura va a acercarse al centro, y en otros de menor anchura puede que el texto no se vea completo.