Tipul rutinei | Timpul de executie |
desenare cerc | 46ms |
desenare linie | 57ms |
verificare coliziune | 1 ms |
O parcurgere completa a rutinei(pentru un labiritnt cu un numar mic de linii) | 210ms |
Timpul de desenare variaza in functie de dimensiunea obiectelor desenate. Se poate vedea ca rutinele de desenare sunt cele mai lente(si mai exact partea de scriere pe lcd). Astfel pentru programul simulat(dar si testat pe lcd) aveam aproximativ doar 5FPS, ceea ce ducea la o afisare in trepte a miscarii dar si la scaderea preciziei sistemului de coliziune.
Solutia pe care am gasit-o a fost desenarea labirintului doar la inceput si nu la fiecare frame. Astfel timpul de executie s-a imbunatatit dramatic. Insa in acest caz apare o problema: se mai intampla ca bila sa se suprapuna cu pixeli din labirint si la actualizarea imaginii(la stergerea bilei pentru desenarea ei la pozitia urmatoare) se sterg si pixeli din labirint. Acest bug il voi rezolva pe viitor.
O alta optimizare a fost modul de desenare a bilei. Initial dupa cum se poate vedea in poza, la capetele superioare si inferioare bilei ii lipseau niste pixeli, iar pentru dimensiuni mai mici ale bilei aceasta semana cu o acolada.
Acum insa bila este desenata aproape complet:
Niciun comentariu:
Trimiteți un comentariu