11 января 2010

отчет №3

Вот и прошли праздники, а жаль... на самом деле успелось сделать довольно много чего. сразу всего и не вспомнить, но по сути как-то так:

  • управление камерой из скриптов
  • парсинг списка уровней из внешнего файла
  • завел в скриптах методы старта и останова звуков и музыки
  • добавилось огромное количество различных физических объектов
  • добавил указатель-стрелку мыши (пока для тестов взял из "спасателей осликов")
  • завел 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() из него (да чего они вообще там делали? типа "ассемблер рулит" что ли?). если будет время - может посмотрю в чем там дело.
может, это и не всё. но перечислять всякие мелочи глупо. в этот раз, как и в прошлые, обойдемся без скринов, демок, текстур, и прочего. ибо не время еще))

    Сообщения, схожие по тематике:

    2 коммент.:

    1. Ого, круто!
      хм.. как на счет скринов ?)

      ОтветитьУдалить
    2. в последнем абзаце ж описал, собственно, что для скринов еще рано))
      как наступит время, так всё и будет))

      ОтветитьУдалить