Commodore 64 > Desarrollo

Mini proyecto escuela

<< < (14/14)

SingletonJohn:
Hola a todos de nuevo!
@Dashiad, he estado probando desvincular del todo el movimiento del repintado y ahora lo que me pasa es que la velocidad de los sprites es inestable.....supongo que haciendo el movimiento a través de una interrupción esto mejorará bastante.
Haré una interrupción que dure 1/3 de frame para evaluar posiciones y colisiones a ver qué tal resulta!.Evitaré que coincidan cálculos y repintados jugando con los relojes

Como lo véis?Os parece buena solución?

SingletonJohn:
También os tengo que contar que todo el programa que tenía hecho de los monstruitos se me fastidió :(.....solo pude salvar los Sprites y las pantallas.
La verdad es que la emulación de la disketera del C64 Maxi me falla bastante,y eso que la tengo en accurate....
En fin,ahora estoy haciendo un Pong para jugar con mis hijos y probar cosas
Saludos!

Dashiad:
Posiblemente, todo el bucle principal del juego debería ser disparado por la interrupción...Lo anterior debería hacer el movimiento más estable, no al revés.
De la lista de cosas  a hacer en cada bucle, hay cosas que tienen un tiempo constante (leer la entrada del usuario, tocar musica), y otras que tienen un tiempo variable (mover, actualizar estado del juego) y otras que podrian ser opcionales (pintar).
Si primero haces las que requieren un tiempo constante y luego haces las de tiempo variable, puedes mirar el registro de la linea de raster, para saber si aún te queda tiempo para pintar en ese frame.
Si te queda tiempo, pintas. Si no, podrías incrementar una variable de "frameSkip".
Si al principio del bucle, "frameSkip" está,por ejemplo, a 3, durante ese bucle, sólo haces las tareas de tiempo constante, y el repintado (te saltas actualizar el mundo).
Así, aunque haya fases del juego donde hay más objetos a actualizar, o más cálculo que hacer, el juego perderá frames, o el movimiento dará un parón, pero el juego sigue "bajo control".

SingletonJohn:
Gracias de nuevo @Dashiad !
Tiene todo el sentido del mundo lo que dices y me pondré a ello.
Estoy dándole vueltas y en un juego como el Pong,lo fundamental es que la pelota vaya finísima,si no es un horror.
Con lo cual la pelota debe ir por encima de todo lo demás
El resto de cosas son muy sencillas y si esperan un frame ni se nota.
La cosa sería poner el movimiento de la bola por interrupciones(asegurando que no se superponga con el repintado,que iría con VSync a 60 por segundo.El sonido tb se podría meter aqui
 El resto de cosas(palas y obstáculos móviles)creo que irían bien en un bucle "normal"
Es más....el movimiento de la bola debería pasar por encima de todo(nmi?) Asegurándose de que no interrumpa nunca el VSync...con un Pong lo tendría facil
El movimiento de la bola es prácticamente de tiempo constante,salvo en los rebotes

SingletonJohn:
Descarto lo de nmi para la bola....es una tontería y me daría problemas si quiero hacer un sei/cli

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa