ya logre que el pajaro(o circulo) se pueda mover junto a los obstaculos, lo que aun no me queda claro es como hacer la colicion con los obstáculos y que el programa me vaya mas rápido, avance en esto pero todavia me falta:
Creo que no entediste en parte lo que quise explicarte.
1-
Crear una funcion para dibujar el pajaro, esta funcione devuelve un booleano.
Esta funcion solo va a modificar el array de 128x64 bits, es decir de 16 x 8 bytes
Cuando intente modificar algun bit, y estos esten en 1, entonces significa que estan ocupados con obstaculos, por lo tanto vas a devolver un 1 en tu funcion del dibujo del pajarito, para indicar que hubo una colision.
2-
Que vaya mas rapido es un problema, solo podes hacer de varias formas..
- Mejorando las librerias (Creando tu funcion), para que puedas escribir todo continuo, y no bit a bit, sino enviar bytes y bytes. Donde seteas la direccion y tiras todos esos bytes del array al LCD, no hace falta rellenarlo con 0, ya que el array los va a sobreescribir.
- Tener mas velocidad en el micro. Lamentablemente hay ciertos tiempos a respetar, y estos los limitan el micro y el LCD. Pero si el micro es el que se queda detras entonces buscar otro micro.
- Descargar el micro del proceso de actualizar el LCD, usando DMA o alguno otro por el estilo (o si tiene un controlador de LCD mejor), de esa forma, mientras vos haces alguna que otra cosa, el DMA se encarga de actualizar, esto podría llevar a que uses 2 arrays para aprovecharlo al máximo.