вторник, 31 января 2012 г.

Numpty Physics: PSP порт. Часть 2




    Просидев пару вечеров, получилось запустить демку в эмуляторе. Запустилась не сразу, долго дебажил, исправлял ошибки. Дебажил так - написал макрос, дописывающий строку в файл, а потом вызывал таким образом - 

Debug(__FILE__,__FUNCTION__,__LINE__);

    Вылетело - в логе последняя строчка говорит после какой функции/строчки ошибка. Очень удобно, особенно если запускать в эмуляторе.



    Решил что уменьшать картинку (800х480)->(512х272) не стоит, т.к. тратить ресурсы на такое не совсем логично, проще и лучше будет переписать уровни под более мелкий экран. Как и говорилось, картинка сначала записывается в буффер в формате RGB565 (Uint16* 512*272*2) а затем копируется в фрэймбуффер консоли. Но в консоли формат RGB565 какой-то не такой, в следствии чего красный круг на картинке совсем не красный, а синий. Сейчас подумал - а может это BGR? Стоит проверить!
    
    Рендеринг объектов в игре производится линиями, то есть вот в этой звездочке 27 линий, в круге еще больше. И что-бы каждый кадр не рисовать все линии, рисуются только те линии, которые находятся в движении. Но как можно судить по скриншоту справа - этот алгоритм дает сбой. Пока не выяснил в чем ошибка. На верхнем скрине каждый кадр картинка очищается и все линии рисуются заново, но в сценах с большим количеством объектов (как на скрине из первой части), такой метод скорее всего будет не актуальным.



Комментариев нет:

Отправить комментарий