Juego tipo asteroids

Hola. Estoy aprendiendo pilas. Quiero hacer un juego tipo asteroids y quería consultarles por el movimiento de la nave. Con este código logró que la nave acelere en la dirección donde esta apuntando, pero quería saber si no habrá una manera más sencilla.

actualizar() {
    this.pilas.observar("velocidad", this.velocidad);
    this.animacion = "nave_en_reposo";
    this.rotar();
    this.acelerar();
    this.bordes();
    let rad = this.rotacion * 2 * Math.PI / 360;
    let x = Math.cos(rad) * this.velocidad;
    let y = Math.sin(rad) * this.velocidad;
    this.x += x;
    this.y += y;
    this.velocidad *= 0.97;
  }

Desde ya gracias!

Hola Rodrigo!!!, sí, hay una forma más sencilla. Todos los actores tienen un método llamado avanzar que se puede utilizar para hacer movimientos de naves o autos, el método tiene dos argumentos:

Entonces, suponiendo que quieres hacer que la nave avance muy lento, podrías escribir este código:

this.avanzar(this.rotacion, 1);

Este método hace algo muy parecido a lo que programaste vos para el movimiento del actor, así que te paso el código por si quieres ver cómo funciona internamente:

Saludos!

1 Like

Hola Hugo. Gracias por tu respuesta. Voy a probar con ese método. La idea que tenía es que la nave tenga cierta inercia y que no frene automáticamente al soltar la tecla. Voy a ver si puedo usar el método avanzar y les comparto el resultado.
De nuevo gracias!

1 Like

Hola, creo que ahí logré la funcionalidad básica del juego. Creo que faltaría ajustar algunos parámetros para que se parezca más al original.
Juego asteroides

¡Qué bueno está quedando!, ¡felicitaciones!