TransWikia.com

Cómo realizar menu principal? JS - PHASER3

Stack Overflow en español Asked by plus on December 4, 2021

Estoy haciendo un pequeño juego en JS, y estoy implementando el menú principal, donde el usuario selecciona entre las diferentes opciones, el problema que tengo ahora es que no se me ocurre alguna forma de cambiar la posición del selector sin que su valor incremente mucho en el update, esta asi:

Create() {
     
   this.selector = this.addText(5,30, "->");  // selector al lado de la opción 1

   this.opción1 = this.addText(10,30,"play");

   this.opción2 = this.addText(10,50,"config");

    this.opción3 = this.addText(10,70,"exit");
}

seleccion () {

   if (this.key.S.isDown === true) {

         this.selector.y = 50; //aqui al presionar la tecla S el selector baja a la segunda opción directamente, cambiando solamente su posición en Y
   } 

} 

Update() {
    
     this.seleccion();

}

El método update no se detiene y estará llamando sucesivamente al método selección, el problema es como dije anteriormente no se me ocurre como hacer ahora para que baje a la tercera opción, ya que la posición no es dinámica por asi decirlo, pensaba en agregarle un contador que a medida que presiona S se le vaya sumando los pixeles en Y de la siguente opción, pero como es ciclo sin parar al sumar incrementa el valor rápido, otra forma es no meterlo en el update y hacer dos teclas apartes S y W, y asignar la posición manualmente

One Answer

Puedes usar una variable de posicion que puede ir rotando las opciones.

Create() {
   
   this.position =30;

   this.selector = this.addText(5,this.position, "->");  // selector al lado de la opción 1

   this.opción1 = this.addText(10,30,"play");

   this.opción2 = this.addText(10,50,"config");

    this.opción3 = this.addText(10,70,"exit");
}

seleccion () {

   if (this.key.S.isDown === true) {
         this.position+=20;
         if (position >70){
           this.position=30;
         }
         this.selector.y = this.position; 
   } 

} 

Update() {
    
     this.seleccion();

}

Luego hacer algo semejante para la tecla arriba, de manera que permita desplazarse en ambos sentidos.

Answered by F.Igor on December 4, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP