Вот и прошли праздники, а жаль... на самом деле успелось сделать довольно много чего. сразу всего и не вспомнить, но по сути как-то так:
- управление камерой из скриптов
- парсинг списка уровней из внешнего файла
- завел в скриптах методы старта и останова звуков и музыки
- добавилось огромное количество различных физических объектов
- добавил указатель-стрелку мыши (пока для тестов взял из "спасателей осликов")
- завел uPlatformDef для перекомпиляции под Lazarus'ом
- сделал Главное Меню. пока простенькое и с минимальным функционалом, но всё же.
- добавились состояния игры: Pause/Play. отклик из Главного Меню и по esc'ейпу.
- 8 новых уровней. не все завершены, но идея каждого прослеживается.
- чуть поправил отработку логов и ошибок. ранее при отсутствии звуков/текстур или других файлов выпадали AV. ныне - запись в логе.
- добавилась веревка! трудился долго и упорно. было сложно, пришлось даже OpenGl чуть подызучить, но результатом пока доволен. добавил uExtGlExtrusion, об этом писал тут.
- запуск звуков при различных стандартных событиях.
- перекрутил систему вызовов из CallBack'а Box2d. теперь все идет намного глубже, и информации гораздо больше (и о SoundManager'е, и о ScriptManager'е). стало удобнее.
- пришлось залезть в старенький uLed.pas. много чего я бы сейчас переделал, но времени нет. в итоге подрефакторил немного, добавил TSimpleLabel, который в итоге используется для бэка меню.
- расширяю SoundManager. добавились методы работы с отдельным каналом.
- рефакторинг и мелкие добавления. завел несколько флагов: SoundOn, MusicOn, UseVbo; убрал счетчик фпс внутрь дебаг-инфо; а сам дебаг-инфо протянул через все менеджеры. тоже самое сделал и с SoundManager'ом; убрал еще глубже торчащие края Box2d. теперь все немного аккуратнее; удалил старый тестовый уровень, создаваемый непосредственно из кода uLevelObjects; добавляю потихонечку Style'ы при инициализации объектов. пока не у всех есть, но их количество стремительно уменьшается.
- главное, чему я был удивлен... дело в том, что над одной bug'ой я потратил несколько часов времени, невзвешиваемое количество нервов и психологического дизбаланса. проблема состояла в том, что в некоторый момент портились ссылки, транслируемые между скриптами и host-программой. при дебаге я лицезрел, что в определенный момент число 72476212 после округления (приходилось таким образом типа приводить) становилось 72476208... то есть Round(72476212) = 72476208! тут уместно только слово "шок"... таких выкрутасов я еще не видел. спасительным оказался F7 - вверху высветилось VectorGeometry. я, конечно, очень люблю этот юнит, но в этот момент он меня расстроил - пришлось на время закомментарить функции Round(), Trunc(), Int() из него (да чего они вообще там делали? типа "ассемблер рулит" что ли?). если будет время - может посмотрю в чем там дело.
может, это и не всё. но перечислять всякие мелочи глупо. в этот раз, как и в прошлые, обойдемся без скринов, демок, текстур, и прочего. ибо не время еще))
Ого, круто!
ОтветитьУдалитьхм.. как на счет скринов ?)
в последнем абзаце ж описал, собственно, что для скринов еще рано))
ОтветитьУдалитькак наступит время, так всё и будет))