Adjunté un rar que tiene el juego, un exe.
Como alternativa dejo una imagen:

Con las flechas izquierda y derecha el jugador mueve la nave naranja, sería su paleta.
Cuando el meteoro (sería la pelota) se está acercando, si se presiona A comienza a apuntarse a la izquierda y si se presiona S a la derecha.
Entonces, si la nave toca al meteoro, rebotará hacia la dirección a la que se haya apuntado, en menor o mayor medida según qué tan antes se presionó la tecla.
La velocidad conque rebota hacia la nave rival, azul, se determinará (se me acaba de ocurrir) según cuánto estuvo quieta la nave del jugador desde que el meteoro comenzó a acercarse.
Con todo eso y como lo tengo hecho, no se puede controlar mucho a dónde se envía el meteoro, porque el rebote hacia el costado no está basado en el rebote hacia la nave azul ni la posición del meteoro, por ahora ese rebote está al azar, pero son 2 velocidades independientes. Entonces, si se presiona A enseguida, el meteoro irá a la izquierda, pero rebotará más abajo de la pared o más arriba según cuánto resulte, por azar, la velocidad hacia la nave azul.
Además puede ir demasiado a un costado, eso supongo que lo puedo arreglar poniendo un límite.
La velocidad hacia la nave azul se determina, no importa cómo. Teniendo en cuenta esa velocidad y la posición del meteoro, necesito una ecuación para que la velocidad hacia el costado del meteoro sea tal que pase por el punto marcado por qué tan rápido el jugador presionó A o S.
La pantalla tiene 800 pixeles de largo.
Supongamos que si el jugador apretó A 1 milisegundo antes de que el meteoro la toque, entonces el meteoro debe pasar por el X 399 cuando llegue a la nave azul, o sea ir un poquitito a la izquierda (400-1, 400 es el pixel central).
Se determina la velocidad conque avanzará hacia la nave, no importa cómo. Supongamos que es 2 pixeles por segundo.
Supongamos que en el momento del impacto el meteoro estaba en el pixel 400, pero abajo.
Entiendo que se puede calcular cuánto tardará el meteoro en llegar a la nave azul (algo como 550/2 segundos, 550 es más o menos la distancia entre las naves, pero claro consideraré la distancia entre el meteoro y la nave azul), y luego puedo hacer distancia X a recorrer / ese tiempo, o sea 1/275, ergo el meteoro se moverá 0.001 no sé cuánto píxeles por segundo, muy poquito.
El problema es que si el botón es presionado muy rápido, quiero que el meteoro se dirija al punto 0 u 800, pero no de arriba, sino del medio, o sea, la distanciaY sería menor.
Bueno, es eso, ahora que escribí el problema ya no me parece tan difícil, pero si me lo pueden solucionar mejor xD
if (Meteor.hitTest(Player) && MeteorYSpeed>0) {
MeteorYSpeed = -Math.random()*(2+Dificultad)-1;
MeteorXSpeed = Math.random()*(3+Apuntando); Significa:
Cuando el meteoro toca a la nave del jugador, y si el meteoro se estaba moviendo hacia ella (eso para que no rebote muchas veces), entonces:
El meteoro rebota hacia la nave azul. No viene mucho al caso la ecuación, el resultado es un número.
Y acá viene lo que debe modificarse, cuánto rebota hacia un costado.
A diferencia de mi proyecto de videojuego de tenis, acá no hay fuerza a repartir, así que no debería ser tan difícil. Además esto es 2d.