Para que se vea claro:
- Quité las paredes.
- Puse que al tocar la nave azul el meteoro vaya derecho (sino podría salirse de la pantalla).
https://youtu.be/FYUkhNFrLsU
Al tocar la nave naranja, el meteoro va hacia arriba y termina en el centro aproximadamente sin importar la rotación inicial.
Solución:
Cuando el meteoro toca la nave naranja:
Código
if (Meteor.hitTest(Player) && MeteorYSpeed>0) { // Determinar rotación y velocidad Y al azar: MeteorRotation = Math.random()*(180+Dificultad)*(2*random(2)-1); MeteorYSpeed = -Math.random()*(2+Dificultad)-1; // Distancia Y desde el meteoro hasta el punto hacia donde se lo apuntó: DistanciaY = MeteorY-ApuntandoY; // Cuánto tardará el meteoro en recorrerla: TardanzaY = Math.ceil(DistanciaY/-MeteorYSpeed); // Distancia X desde el meteoro hasta el punto hacia donde se lo apuntó: DistanciaX = ApuntandoX+400-MeteorX; // Determinar cuánto de moverá debido a la curva (falta considerar la reducción): MovimientoPorCurva = MeteorRotation/1000*(101*TardanzaY-10100+10100*Math.pow(1.01, -TardanzaY)); // Determinar la velocidad X para que el meteoro llegue... // al punto X apuntado justo cuando llega al punto Y apuntado: MeteorXSpeed = (DistanciaX-MovimientoPorCurva)/TardanzaY;
ApuntandoY y ApuntandoX es que se está apuntando hacia arriba y al centro, ya lo puedo cambiar, pero era en vano si no podía hacer que la velocidad X se ajuste a la rotación.
Lo que Deepseek me dijo evidentemente es la fórmula esta:
MovimientoPorCurva = MeteorRotation/1000*(101*TardanzaY-10100+10100*Math.pow(1.01, -TardanzaY));
La conversación:
https://chat.deepseek.com/share/16y0pm66c099tzo5cb
Si no la ven copio los mensajes, pero como tienen fórmulas matemáticas con "renglones" y otras cosas, sería complicado.




