En la imagen de arriba muestra todos los cuadrantes de la pantalla:
Este algoritmo sirve para el movimiento natural de la pelota, usado en juegos como el ping pong.
Hice este código para un cuadrante de la pantalla, es decir hice para el primer y segundo octante, pero no logro hacer los siguientes 3 cuadrantes. ¿Cómo variar la dirección? ¿Cómo mover la pelota para los diferentes 8 octantes?
Las variables dx
y dy
son valores para el eje X e Y respectivamente, donde es la dirección para el movimiento de la pelota, y por último, las variables xi
y yi
sirven para la posición actual de la pelota.
Nota: En realidad no puede ser solamente una pelota, puede ser cualquier objeto:
if (dx >= 0 && dy >= 0) {
if (m < 1) {
stepX = 1;
stepY = 1;
d = 2 * dy - dx;
de = 2 * dy;
dne = 2 * (dy - dx);
respuesta = 1;
} else {
stepX = 1;
stepY = 1;
d = dy + (2 * (-dx));
de = 2 * (-dx);
dne = 2 * (dy - dx);
de = -de;
dne = -dne;
respuesta = 2;
}
}
¿Cómo hacer que funcione para los 8 octantes?