Страница 37 из 40

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 28 май 2013, 14:14
Apromix
Ну тут назревает вопрос: прикручивается ли либа к GDI? Или ей QGL или DX подавай?

И еще вопрос: выводится шрифт на канву белого цвета, но на белом фоне изображения текст сливается с рисунком. Как обвести текст черным контуром программными средствами? Может ли FT такое сделать?
Скрытый текст: ПОКАЗАТЬ
В голову пришло только сохранить битмап с текстом и в пэинте и обвести его черным контуром :)

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 28 май 2013, 14:27
Uvadzucumi
не совсем обводка, но, обычно, просто рендерят 2 раза. вначале черным. со смещением на 1 пиксель по x и y. потом уже белым по нормальным координатам. получается, как бы тень и можно читать белые буквы на белом фоне.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 28 май 2013, 14:38
Cfyz
Apromix писал(а):Ну тут назревает вопрос: прикручивается ли либа к GDI? Или ей QGL или DX подавай?
FreeType весьма низкоуровневая библиотека. Она никуда сама по себе не прикручивается, на ее выходе пользователь имеет либо векторный, либо растровый рисунок глифа + его метрики. Транслировать в нужное пространство цвета, собрать в текстурный атлас -- это остается на совести разработчика. С другой стороны, собрать из растеризованных FreeType тайлов одну картинку в памяти, чтобы потом привычно загрузить ее в текстуру или куда там еще -- весьма тривиальная задача.
Apromix писал(а):И еще вопрос: выводится шрифт на канву белого цвета, но на белом фоне изображения текст сливается с рисунком. Как обвести текст черным контуром программными средствами? Может ли FT такое сделать?
Ну, как правило в простых случаях нет необходимости рисовать белым по белому =) Такая функциональность во FreeType есть (можно выбрать глиф, получить его контур, растеризовать его в битмап), но я ею не пользовался. Для растеризации контура вероятно потребуется букваль пара лишних вызовов, но вот собирать основной глиф (белый) в одну картинку с контуром (черным) уверен придется самому, ручками.
Uvadzucumi писал(а):не совсем обводка, но, обычно, просто рендерят 2 раза. вначале черным. со смещением на 1 пиксель по x и y. потом уже белым по нормальным координатам. получается, как бы тень и можно читать белые буквы на белом фоне.
Имхо, пойдет только на самое первое время, для мокапа так сказать. В наше время продвинутой типографики такой текст выглядит просто чем-то из прошлого века, об него глаза сломать можно.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 28 май 2013, 14:42
Jolly Roger
Честно говоря, когда первый рас столкнулся с FT был поражен невероятной силой данной библиотеки.
Думаю, надо будет вынести её обсуждение из данной темы в отдельную.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 28 май 2013, 16:27
Apromix
Uvadzucumi писал(а):не совсем обводка, но, обычно, просто рендерят 2 раза. вначале черным. со смещением на 1 пиксель по x и y. потом уже белым по нормальным координатам. получается, как бы тень и можно читать белые буквы на белом фоне.
Спасибо :D Действенный метод, я его несколько изменил и отрисовывал со смещением назад и вверх, потом вперед на пиксел и вниз, и только потом по норм. координатам белым. Вот что получилось. По мне так читабельно :D
Скрытый текст: ПОКАЗАТЬ
Изображение
См. код - станет понятнее:
Скрытый текст: ПОКАЗАТЬ

Код: Выделить всё

  const
  T: array[0..16]of char = ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
      'C', 'I', 'Q', 'A', 'L', 'M', 'S');
  P: array[0..2]of -1..1 = (-1, 1, 0);
  ...
  with SCR.BG.Canvas do
  begin
    Font.Color := 0;
    for J := 0 to 2 do
    begin
      if (P[J] = 0) then Font.Color := clWhite;
      for I := 0 to 16 do TextOut(I * 33 + 122 + P[J], 582 + P[J], T[I]);
    end;
  end;

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 29 май 2013, 20:13
Apromix
Хорошая новость! Нами интегрирован FOV из BeaRLibFOV.dll полностью, включая свет от различных источников освещения и летящих фаерболов :)

Новая версия доступна для скачивания и тестирования :)

В сравнении с предыдущей версией можно отметить следующие изменения:
+ Новая расширенная панель
+ Инсталлятор
+ Полностью рабочий FOV

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 30 май 2013, 02:29
phomm
Ну предположим, что файрболы ещё ничего не освещают, да и вообще стрельба где-то посыпалась (самого отображения нет, ну у меня по крайней мере, а эффект есть), но это моя следующая по плану задача (грамотная система множественных типов выстрелов, со всякими фичами, типа освещения от файрбола).
Освещение от произвольных источников, если уж его упоминать, не часть берлибфова, а просто новая фича, которую я тоже давно ещё планировал, а берлибфов позволил её внедрить почти без крови кодирования.

У меня в планах также переброска работы с берлибмг от подключения либы к включению сурцов (кому интетересно, в берлиб-подфоруме в теме мг обсуждались подводные камни установки рандомного зерна в связке либы и проги) - тогда примитивная схема сохранения отыгранных игроком уровней будет работать как запланировано.

В планах также серьёзная переделка по работе с вещами в игре - для возможности поддержки текущих желаемых фич и даже тех, которые позже придумаются, чтобы автоматом могли включаться в работу. Нынешняя система негибкая, давно на неё зуб точу :)

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 20 июн 2013, 08:06
Apromix
Новости:
+ Сделал сундук персонажа в городе, в котором можно хранить свои вещи и золотишко :D
+ После смерти персонаж потеряет все золото, которое было при нем, так что лучше хранить в сундуке.
Скрытый текст: ПОКАЗАТЬ
Изображение

Изображение

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 22 июн 2013, 16:42
Apromix
Новости:
+ Золото добавляется и изымается из сундука в нужном количестве.
+ При торговле учитывается золото на руках и золото в сундуке (не нужно бежать в сундук, если не хватает требуемой суммы).
+ Появились фаерболлы. При полете фаерболл освещает местность вокруг и при попадании во врага взрывается.
Скрытый текст: ПОКАЗАТЬ
Изображение

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 29 июн 2013, 10:39
Apromix
Новости:
+ Вместо одной атаки и защиты добавлены 8 атак и 8 защит от них: Crash, Slash, Prick, Ice, Lightning, Fire, Poison, Acid.
+ Персонажа можно удалить из меню.
+ Добавлен генератор мужских и женских имен в сцену создания перса.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 29 июн 2013, 19:46
Sirion
Prick
Может, лучше pierce? Помимо всего прочего, prick - это ещё и эвфемизм для МПХ.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 11 июл 2013, 14:26
aleks59
Sirion писал(а):
Prick
Может, лучше pierce? Помимо всего прочего, prick - это ещё и эвфемизм для МПХ.
Возможно, что и pierce.
Просто надо понять, какое именно слово обозначает "колющий удар" именно в том смысле, который нам нужен. И именно "колющий". Не колоть, не прокалывать\продырявливать\просверливать\просачиваться и всё подобное. Колющий.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 11 июл 2013, 14:33
karagy
Прокалывающий удар (ножом, стилетом, копъем) - pierce.
Раскалывающий удар (топором, двуручным мечем, алебардой) - cleave.

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 11 июл 2013, 17:23
Apromix
karagy писал(а):Раскалывающий удар (топором, двуручным мечем, алебардой) - cleave.
У нас режущий удар. Slash

Re: Heart of Darkness the Roguelike - Сердце Тьмы

Добавлено: 13 июл 2013, 21:31
Apromix
Новости:
+ Подсказки ко всем игровым элементам.
+ Первый класс - воин.
+ Дерево скиллов (окончательный вариант).
+ Настройка уровня громкости (в игре).
+ Выбор шрифта (в игре).