No me puedo mover dos paletas al mismo tiempo en el juego de mesa que estoy haciendo

madcuzbad:

Así que estoy tratando de código pong en el procesamiento y todo está funcionando bien, y puedo mover las paletas hacia arriba y abajo a la perfección, sin embargo, cuando se intenta mover dos paletas al mismo tiempo, que no se mueven / no lo hace que sea (que voy a hacer de este juego un jugador 2 para que 2 personas pueden jugar usando el mismo teclado pero con claves diferentes para las diferentes paletas).

Creo que esto es un problema con el uso de "clave" o "keyPressed", porque creo que no se puede detectar tanto o algo? pero me parece que no puede encontrar la manera de solucionar este o cualquier alternativa. (Tenga en cuenta que yo sepa cómo mover las paletas, es sólo que no se puede mover a los dos al mismo tiempo con las diferentes claves proporcionadas como im tratando de)

Tengo dos objetos hasta el momento, "Jugador 1" y "Player2"

tenga en cuenta "y" es la posición y que, o bien irá hacia arriba o hacia abajo dependiendo de la tecla presionada, y "velocidad" es sólo la velocidad que la paleta se moverá.

Esto está en Player1. Arriba = w, abajo = s

void movement() {

    if(keyPressed) {

      if(key == 'w' || key == 'W') {
        y = y - speed; //goes up

      } else if (key == 's' || key == 'S') {
        y = y + speed; //goes down
      }
    }
  }

Esto está en Player2. Arriba = tecla de flecha arriba, abajo = tecla de flecha hacia abajo

void movement() {

    if (keyPressed) {

      if(key == CODED) {

      if(keyCode == UP) {
        y = y - speed; //goes up

      } else if (keyCode == DOWN) {
        y = y + speed; //goes down
      }

    }

    }

  }

No hay mensajes de error, simplemente no le permiten mover las paletas 2, al mismo tiempo, que es algo que me gustaría hacer.

Rabbid76:

Tienes que utilizar las keyPressedy keyReleased()eventos. Los eventos se ejecutan una vez cuando se presiona o se suelta una tecla. Establecer un estado cuando se pulsa una tecla, respectivamente restablecer el estado cuando se suelta la tecla:

Boolean player1_up = false;
Boolean player1_down = false;
Boolean player2_up = false;
Boolean player2_down = false;

void keyPressed() {
    if (keyCode == UP)
        player1_up = true;
    else if (keyCode == DOWN)
        player1_up = true;
    if (key == 'w' || key == 'W')
        player2_up = true;
    else if (key == 's' || key == 'S')
        player2_down = true;
}

void keyReleasd() {
    if (keyCode == UP)
        player1_up = false;
    else if (keyCode == DOWN)
        player1_up = false;
    if (key == 'w' || key == 'W')
        player2_up = false;
    else if (key == 's' || key == 'S')
        player2_down = false;
}

Utilice los estados player1_up, player1_down, player2_upy player2_downen las movementfunciones.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=315218&siteId=1
Recomendado
Clasificación