es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo eliminar una bala después de cierta distancia?

Cómo eliminar una bala después de cierto tiempo o cierta distancia? Estoy usando JavaScript y Phaser 3.

if (keyA.isDown && time > lastFired || isDown && time > lastFired) {

        var bullet = bullets.create(player.x , player.y, 'bullet');

        bullet.setVelocity(-800, 0);
        lastFired = time + 90;

}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar una bala después de un cierto período de tiempo o distancia, puedes agregar una función setTimeout para destruir la bala después de cierto tiempo o añadir una función distanceCheck para comprobar la distancia de la bala desde su punto de partida.

    Ejemplo de destrucción de una bala después de un cierto período de tiempo:

    var bullet = bullets.create(player.x , player.y, 'bullet');
    bullet.setVelocity( -800, 0);
    lastFired = time + 90;
    
    setTimeout(function() {
      bullet.destroy();
    }, 2000);
    

    En este ejemplo, la función setTimeout se utiliza para destruir la bala después de 2 segundos (2000 milisegundos).

    Ejemplo de destrucción de una bala después de una cierta distancia:

    var bullet = bullets.create(player.x , player.y, 'bullet');
    bullet.setVelocity( -800, 0);
    lastFired = time + 90;
    
    var distanceCheck = setInterval(function() {
      var distance = Phaser.Math.Distance.Between(player.x, player.y, bullet.x, bullet.y);
      if (distance > 500) {
        bullet.destroy();
        clearInterval(distanceCheck);
      }
    }, 100);
    

    En este ejemplo, la función setInterval se utiliza para comprobar la distancia de la bala desde el jugador cada 100 milisegundos. Una vez que la distancia supera los 500 píxeles, la bala se destruye y se detiene la función setInterval utilizando clearInterval.

Comments are closed.