Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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!.

Autor Tema: Virtual keys cambian de lugar en Android - RESUELTO  (Leído 1768 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado serviciosadistancia

  • Habitual
  • *
  • Puntos: 191
  • Mensajes: 92
    • Ver Perfil
en: Junio 22, 2015, 02:28:04 am
Hola makeros, tengo un problema inesperado, al configurar las virtual keys y probar el juego en windows funciona todo bien pero cuando compilo para android estan todas movidas, en principio pense que no estaban funcionando pero tocando por la pantalla me di cuenta de que sí estan pero no donde yo las he puesto, alguien sabe como evitar esto?
« última modificación: Junio 24, 2015, 05:49:01 pm por serviciosadistancia »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado aroldhtz

  • Habitual
  • *
  • Puntos: 62
  • Mensajes: 27
    • Ver Perfil
Respuesta #1 en: Junio 22, 2015, 03:05:06 am
el problema radica en que seguro usaste valores fijos para ponerlos en el room

digamos que lo pusiste en x=400 y=900
pero tu celular es de 360×480
entonces aparecerán en el lugar que pusiste,  y por ende, fuera de la pantalla, o desordenadas.


http://gmc.yoyogames.com/index.php?showtopic=565614


 


Desconectado serviciosadistancia

  • Habitual
  • *
  • Puntos: 191
  • Mensajes: 92
    • Ver Perfil
Respuesta #2 en: Junio 22, 2015, 09:39:52 pm
Hola gente, luego de probar y probar, ubicar las virtual keys en coordenadas relativas a un punto u objeto y no a la room, prueba tras prueba, estoy en condiciones de decir que el sistema de Virtual Keys de Game Maker NO SIRVE, si están pensando en implementarlo en algún proyecto ni siquiera lo intenten, algo que debería ser tan simple se va a convertir en una pesadilla, va a convertir su juego en todo un desastre, agotadas las instancias puedo dar dos soluciones, una es desistir y dejar de lado el multitouch y otra es usar otro software si tienen la posibilidad como ser Unity donde lograr esto es básico. También hay otra forma de hacerlo segun YOYO con un bucle for y las funciones device del mouse pero al primer intento no me funcionó, tal vez lo intente una vez más. Repito, NO SIRVE y nadie por más experto que sea en GMS me ha podido resolver este problema.
« última modificación: Junio 22, 2015, 09:41:53 pm por serviciosadistancia »

 


Desconectado penumbra

Respuesta #3 en: Junio 22, 2015, 09:59:08 pm
Yo siempre ando insistiendo en que cuando se plantea un problema, hay que colocar el código que no está funcionando (sólo el que no funciona, no todo el código del objeto), y en tu caso, esto es muy ilustrativo de qué pasa si no se coloca código. En esencia sólo mencionas que tienes un problema y al final dices que no tiene solución, pero jamás nos diste indicio de qué código estás usando.

Sin ser usuario de Android ni usar GML para esos dispositivos, yo me arriesgaría a decir que el posicionamiento de teclas virtuales funciona perfectamente. Lo que me hace pensar que tu método está fallando es esto:

Citar
The actual position of the virtual key is based on the screen position rather than room position and so the x/y values are absolute on the screen. This means that you don't need to worry about the use of views or the relative room coordinates, and can simply draw your key sprites and define your virtual keys in the Draw GUI Event of an object.

Así que si las teclas se definen en el evento Draw GUI ni siquiera hay que definir coordenadas relativas, porque en GM: Studio las VK se mapean directo a la pantalla sin tomar en cuenta la habitación (esto último se menciona creo que en el tutorial de teclas virtuales de GM:S).

Otra cosa importante:
Citar
These keys are assigned on a per room basis and will be automatically removed by GameMaker: Studio when changing rooms.

Incluso usando posiciones relativas (que no es necesario, según el manual) parece que a varios makeros les ha funcionado:
http://webcache.googleusercontent.com/search?q=cache:pqnEhX7kZz4J:www.comunidadgm.org/preguntas-y-respuestas/reajustar-la-gui-a-resoluciones-android(solucionado)/+&cd=1&hl=es-419&ct=clnk&gl=mx
« última modificación: Junio 22, 2015, 10:16:02 pm por penumbra »

 


Desconectado serviciosadistancia

  • Habitual
  • *
  • Puntos: 191
  • Mensajes: 92
    • Ver Perfil
Respuesta #4 en: Junio 23, 2015, 12:12:44 am
Hola, antes que nada gracias por responder, sí tienes razón Penumbra pero es que no hay mucho para poner, el código es corto, una simple función

En evento Create del boton
Código: [Seleccionar]
virtual_key_add (x-96,y-224,300,400,vk_f1)
Es un boton/palanca que ya tego en un sprite y se mueve segun donde esté el dedo, yo no quiero dibujarlo con draw, necesito que sea un objeto, cuando pruebo en windows anda de mil maravillas pero en android se mueven todas las virtual keys.

 


Desconectado penumbra

Respuesta #5 en: Junio 23, 2015, 01:56:09 am
Aun así, es mejor ver el código para estar seguro. Lo que no me queda claro es lo que quieres hacer:

Es un boton/palanca que ya tego en un sprite y se mueve segun donde esté el dedo

¿Es decir, quieres que ese control/botón se mueva a la posición del dedo? Si ese es el caso, pues el problema es que una tecla virtual no está pensada para funcionar así. Una tecla virtual, al menos en casos normales, siempre está fija. Quizás se pueda mover (no lo he probado), pero entonces esa función debería moverse a un evento que no sea CREATE

x-96,y-224 no va a funcionar en dispositivos móviles, porque ese 96 y ese 224 son valores ABSOLUTOS y no están considerando el tamaño de la pantalla del dispsitivo. Ese 224 en un dispositivo puede representar un punto cercano al borde superior de la pantalla, mientras que en otro dispositivo, puede quedar cercano al centro o más cerca al borde inferior.

En el enlace de mi mensaje anterior se explica cómo se debería posicionar la tecla virtual usando las variables de GML que devuelven las medidas del display.

Esto: "Posiciona la tecla en X = 500" no es lo mismo que esto "Posiciona la tecla en X = la mitad del ancho del display actual". En esta diferencia radica la solución.

 


Desconectado eams1986

Respuesta #6 en: Junio 23, 2015, 02:23:08 am
Lo que dice PENUMBRA es relativamente correcto ya que las teclas virtuales no se pueden mover como dicho objeto
Pero si tu lo que quieres es animar las teclas cuando tu presionas o dejas de presionar ellas se animan entonces pueden usar el Draw sprite ext hay te va ir indicando lo que tu quieres .
Saludes es un recordatorio que hago no estoy seguro del draw sprite ext.
Suerte


Desconectado serviciosadistancia

  • Habitual
  • *
  • Puntos: 191
  • Mensajes: 92
    • Ver Perfil
Respuesta #7 en: Junio 23, 2015, 02:25:15 am
Es una palanca al estilo de las que trae un joystick de playstation, o sea, dentro de un circulo se mueve un boton que no sale de ese cìrculo

http://www.subirimagenes.net/i/150623022545394219.jpg

lo que necesito es poder manejar dos jugadores al mismo tiempo, cada uno con su palanca, con device_mouse trate de hacerlo pero tengo otro problema, es que los dos jugadores hacen lo mismo, ya se me agotaron las instancias.
« última modificación: Junio 23, 2015, 02:27:59 am por serviciosadistancia »

 


Desconectado eams1986


Desconectado serviciosadistancia

  • Habitual
  • *
  • Puntos: 191
  • Mensajes: 92
    • Ver Perfil
Respuesta #9 en: Junio 23, 2015, 03:41:45 am
Exactamente eso es lo que uso para el juego. Por favor alguna ayuda o voy a tener que descartar el juego

 


Desconectado mamaffia

Respuesta #10 en: Junio 23, 2015, 04:31:36 pm
Holaa yo tengo exactamente el mismo problema y luego de luchar bastante iba a preguntarlo aqui en el foro, por lo que veo no tiene solucion, mala nota para game maker en este aspecto ya que hoy en dia todos los telefonos del mundo son multitouch, no puede ser tan dificil de implementar, es una locura tener que calcular la posicion de una virtual key en base a la resolucion de cada telefono y blabla, si no lo hacemos con sprites, con objetos, por que no es igual con las virtual keys? en ultima instancia deberiamos poder darle la ubicacion o las coordenadas de un objeto para que se posicione, realmente un verdadero desastre, y device_mouse....... otro desastre, imposible, tocas un boton se aprieta el otro, se mezcla todo, no pude encontrar un solo ejemplo que funcione, tener algo tan simple como dos botones que hagan cosas diferentes al mismo tiempo en la misma room en Game Maker es una odisea, deberíamos hacer una queja a YOYO por lo que pagamos.

 


Desconectado ocarina

Respuesta #11 en: Junio 23, 2015, 07:48:49 pm
Las teclas virtuales son muy útiles y nada más de saberlas usar! También depende de la versión del gms q tengas ya que en las versiones anteriores eran muy difícil acomodar las teclas, y no es q sea imposible usarlas o como dice el compañero descartado!
Cuando llegue a casa podría subir un ejemplo sencillo de como usarlas en cualquier dispositivo!

PURA VIDA


 


Desconectado serviciosadistancia

  • Habitual
  • *
  • Puntos: 191
  • Mensajes: 92
    • Ver Perfil
Respuesta #12 en: Junio 23, 2015, 08:54:20 pm
Ocarina, yo dije descartado porque intente hacerlo de mil formas y no pude pero obviamente si me dices que se puede es porque era cuestion de conocimientos que me estan faltando y si puedes subir como dijiste un ejemplo seria de muchisima ayuda para mi y los otros compañeros que estan luchando con la misma cuestion.

 


Desconectado penumbra

Respuesta #13 en: Junio 23, 2015, 09:52:23 pm
A ver, pero el mensaje original habla de unas virtual keys que se mueven a lugares no esperados, pero resulta que al final lo que quieres hacer no tiene que ver con virtual keys. Una palanca analógica o joystick en pantalla no es ni funciona como una tecla virtual. Una tecla virtual es símplemente un área que se mapea a alguna tecla. Es obvio que un solo botón no puede emular el comportamiento de un control analógico que tiene múltiples direcciones. O quizás hay algo de lo que me he perdido y ya no entendí.

es una locura tener que calcular la posicion de una virtual key en base a la resolucion de cada telefono y blabla, si no lo hacemos con sprites, con objetos, por que no es igual con las virtual keys?... no pude encontrar un solo ejemplo que funcione.
Personalmente opino muy distinto. Que no haya un ejemplo o que los que hayan no funcionen no significa que GM:S falle (obvio que puede fallar si se trata de un bug o de plano la característica está mal implementada, cosa que no creo que pase tratándose de VK's). Como dijo algún moderador o administrador aquí hace años (no recuerdo quien): "Si no existe un ejemplo, no te quejes por eso y mejor haz un ejemplo tu mismo". No quiero defender a ciegas a GM:S, hay cosas que en otros motores se hacen de manera más fácil, también le faltan características y en los últimos meses sólo se han dedicado a corregir bugs menores y no han agregado nuevas características de verdad útiles o poderosas, pero posicionar una tecla virtual no es nada complicado y hay muchos juegos hechos en GM:S que lo hacen.

Tampoco creo que realizar un par de multiplicaciones o divisiones en GML sea una locura Porque eso es lo único que hay que hacer para calcular la posición relativa de una tecla virtual, una para X y otra para Y, y no es que se tenga que hacer una vez para cada celular, el mismo código escrito una sola vez en un evento CREATE o similar serviría para cualquier dispositivo, y si al final haces con eso un script, el mismo script serviría para todos los proyectos en donde haya teclas virtuales.

No lo he probado, pero no creo que el manual se equivoque al decir que ni siquiera es necesario usar coordenadas relativas cuando se usa el evento DRAW GUI para definir la tecla, ya que es un evento en donde las coordenadas tienen relación 1:1 con el display del dispositivo y no se toma en cuenta la dimensión de la habitación.
« última modificación: Junio 23, 2015, 10:27:25 pm por penumbra »

 


Desconectado ocarina

Respuesta #14 en: Junio 24, 2015, 06:57:04 am
aqui esta el ejemplo
espero te sirva
esta creado en la versión 1.99.416 early access

saludos

PURA VIDA