Estoy bastante emocionado ya que cumpli uno de mis cometidos para la implementación de un juego que estoy planeando, una de las cosas que queria agregarle si o si era un menú de rueda, tambien conocido como "Wheel Menu", "Spin Menu", entre otros.
Una imagen de referencia para que se de una idea en caso de que no hubiecen visto un menú de rueda.
Este menú comenzo como un mero capricho cuando me levante, alrededor de las 11:00 AM (Estoy de vacaciones) y al poco tiempo de comenzar me di cuenta que era mas complicado de lo que pense, como todo en la vida, y a medida que iba avanzando me di cuenta que tendria que buscar ayuda por internet, busque y busque por Google y Youtube algun tutorial o algo que se le asemejara y en la comunidad oficial de YoyoGames encontre un indicio, algo que me pudiece ayudar a proseguir.
Pero antes de todo debia plantearme bien como debia de ser el comportamiento del menú, asi que hice una animación incompleta y basica en Photoshop.
Obviamente tambien debia hacer una imagen estatica en Graphicsgale, tambien de puro capricho, en el que daba mas a o menos la idea de lo que queria hacer.
Con el problema perfectamente planteado (quiero pensar) debia comenzar a seguirle marcha al menú, encontre una función muy peculiar la cual era "lengthdir_x();" y acto seguido la busque en el tutorial de GameMaker, y en una descripción formal es la siguiente:
"Devuelve la
componente horizontal (x) del vector determinado por la longitud y dirección
indicadas" - Traducción de manual de GameMaker 6.1 de www.comunidadgm.org
Si quieres saber mas a fondo sobre esta y las demas funciones de valores trigonometricos el actual manual de GameMaker Studio tiene información en el apartado de Reference>Maths>Real valued function - Trigonometric Functions, esta en ingles pero tiene una descripción bastante entendible junto con una imagen de apoyo, asi como tambien un ejemplo de uso.
Bueno, total, el caso es que habia podido hacer el menu en base a las manecillas del reloj, ahora faltaba que el seleccionador funcionara correctamente, no fue mucho problema, lo que seguia era talvez lo tardado (no dificil), era hacer una pequeño movimiento que simulara una animación de entrada la cual poco a poco iba dando forma.
De ahi tenia que hacer el movimiento de derecha a izquierda y que simulara una animación lo cual resulto bastante tedioso ya que tube que hacer varias cosas a prueba y error que simple y sencilla mente eran cosas bastantes simples pero a la vez frustrantes.
Una vez terminado la animación estuve pensando como por 1 o 2 horas como hacer que que el funcionamiento del codigo se adaptara a cuantas opciones se tienen en el menú, una vez hecho esto me pusea limpiar el codigo y me ahorre aproximadamente como 9 o 10 lineas de codigo y que se adaptara a todas las opciones que tenga.
Asi que lo que comenzo como un capricho, se convirtio en una obsesión y que en total dure como 3 o 4 horas en total, pero obviamente el codigo lo tocaba por ratos y que lo termine casi a media noche.
Unas imagenes de como quedo.
Y asi termino mi tan frustrado dia, creo que descanzare un momento y seguire en la busqueda de otra cosa que quiero implementar en el juego.
Saludos!