-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
El bug del Modo-8 #21
Comments
He estado investigando este bug y creo que puede tener que ver con que el radius del proceso de la cámara sea 0. Voy a intentar hacer un programa que lo reproduzca y si es así quizá se podría poner un radius por defecto de 1 (y que no se pueda poner un radius menor). |
Creo recordar que era mucho más fácil provocar el bug con radius=0, pero no es requisito. Acabo de reproducirlo en WLD_VIEW con radius=64. |
Voy a intentar solucionarlo. ¿Puedes poner por aquí el programa .PRG con el que reproducir el bug? ¿Se puede reproducir trasladando el proceso cámara a una coordenada Creo que en VPE se guardan tanto la coordenada actual como la coordenada anterior, quizá podría hacer algo como: if (fuera_de_sector(new_x, new_y)) {
int dx = new_x - old_x;
int dy = new_y - old_y;
// ...obtener el inc_x y el inc_y.
int test_x = old_x;
int test_y = old_y;
while (!fuera_de_sector(test_x, test_y)) {
test_x += inc_x;
test_y += inc_y;
}
new_x = test_x;
new_y = test_y;
} |
Viene con DIV2, si no lo tienes aquí te lo paso. wld_view.zip
No, porque entonces VPE hace una comprobación completa y detecta que la cámara no está en un sector válido. El bug sólo salta cuando mueves la cámara poco a poco. Por eso un workaround es teletransportar la cámara lejos y traerla de vuelta a su sitio. |
Vale, he estado probando y he conseguido sacar unas coordenadas exactas para reproducir el error:
|
El Modo-8 siempre tuvo un bug que permitía a la cámara salirse del mapa. VPE seguía creyendo que la cámara estaba en el último sector pisado, lo que hacía parecer que el sector se estirara hasta el infinito.
Creo recordar que una forma de evitarlo era teletransportar la cámara a otro sector y luego de vuelta a su lugar original, de forma que se obligaba a VPE a recalcular el sector actual. Lo que me hace pensar que el fallo está en la función que comprueba la colisión con las paredes y el paso de un sector a otro cuando se dan pasos pequeños.
The text was updated successfully, but these errors were encountered: