ACS. Печатаем на экране (HudMessage)

Предисловие

HudMessage — это универсальная комманда для рисования текста на экране. В отличии от print, она может рисовать текст в любом месте экрана. Также, у данной комманды есть несколько типов рисования текста, таких как:

  • HUDMSG_PLAIN — обычный текст
  • HUDMSG_FADEOUT — плавно угасающий текст
  • HUDMSG_TYPEON — текст, который печатается посимвольно, затем плавно угасает.
  • HUDMSG_FADEINOUT — появляющийся и угасающий текст.

Ниже, я разобрал каждый из этих типов.

Также, с помощью HudMessage можно рисовать картинки, но об этом позже.

HUDMSG_PLAIN. Обычный текст.

Разберем самый простой тип HUDMSG_PLAIN.

SetFont("BIGFONT");
SetHudSize(400,200,0);
HudMessage(s:"under-prog.ru";HUDMSG_PLAIN,0,CR_BRICK,200.0,100.0,5.0);

Синтаксис тут следующий:

HudMessage(строка;тип_hudMessage,id,цвет,x,y,время_показа);
  • строка — указывает строку, которая отобразится на экране (указывается так же, как и для комманды print).
  • тип_hudMessage — указывает тип hudMessage (как будет показываться текст на экране).
  • id — указывает id HudMessage.
  • цвет — указывает цвет в формате, доступные цвета можно посмотреть на вики.
  • x, y — указывает где, по оси x,y, будет находится текст.
  • время_показа — указывает сколько секунд, будет отображаться текст на экране.

По поводу id, помните что на одном id, может находится, лишь один HudMessage. Например мы рисуем 1-ый HudMessage, и рядом с ним 2-ой HudMessage, их id равен 1. В таком случае нарисуется только последний HudMessage, то-есть второй. Второй HudMessage, как бы, перезаписывает первый HudMessage. Но если id равен 0, то ограничений нет. На нулевом id, можно рисовать — бесконечное множество HudMessage.

Ладно, смотрим.

HUDMSG_FADEOUT. Текст с плавным угасанием.

SetFont("BIGFONT");
SetHudSize(400,200,0);
HudMessage(s:"under-prog.ru";HUDMSG_FADEOUT,0,CR_BRICK,200.0,100.0,5.0,1.0);

Разберем синтаксис типа HUDMSG_FADEOUT.

HudMessage(строка;тип_hudMessage,id,цвет,x,y,время_показа, время_угасания);

Как мы видим, здесь добавился аргумент время_угасания. Разберем его.

  • время_угасания — указывает время, за которое надпись станет прозрачной.

HUDMSG_TYPEON. Печатаем текст на экране.

SetFont("BIGFONT");
SetHudSize(400,200,0);
HudMessage(s:"under-prog.ru";HUDMSG_TYPEON,0,CR_BRICK,200.0,100.0,1.0,0.2,1.0);

Здесь, синтаксис следующий:

HudMessage(строка;тип_hudMessage,id,цвет,x,y,время_показа, время_печати_символа, время_угасания);
  • время_печати_символа — указывает время, необходимое чтобы напечатать 1 символ.

Проверяем.

HUDMSG_FADEINOUT. Появляющийся и угасающий текст.

SetFont("BIGFONT");
SetHudSize(400,200,0);
HudMessage(s:"under-prog.ru";HUDMSG_FADEINOUT,0,CR_BRICK,200.0,100.0,1.0,1.0,1.0);

Синтаксис тут следующий:

HudMessage(строка;тип_hudMessage,id,цвет,x,y,время_показа, время_появления, время_угасания);
  • время_появления — указывает время, за которое появится HudMessage
  • время_угасания — указывает время, за которое угаснет HudMessage

Большую часть синтаксиса, я разбирал выше. Ладно, тестим.

Рисуем картинку на экране.

Добавьте любую картинку в свой wad, через Slade. Затем, откройте Doom Builder, и в ACS, добавьте следующее.

script 3 (void)
{
  SetFont("COFFE");
  SetHudSize(200,140,0);
  HudMessage(s:"a";HUDMSG_PLAIN,0,CR_BRICK,100.0,100.0,5.0);
}

В данном скрипте, мы подключили в качестве шрифта, картинку «COFFE«.

SetFont("COFFE");

Установили разрешение экрана на 200×140 пикселей (это разрешение растянется под ваше разрешение экрана)

SetHudSize(200,140,0);

И отобразили нашу картинку

HudMessage(s:"a";HUDMSG_PLAIN,0,CR_BRICK,100.0,100.0,5.0);

Технически, мы не рисуем картинку а печатаем текст, просто в качестве шрифта, мы используем картинку. Вот такой вот костыль.

Заключение.

Фух, надеюсь ничего не забыл. Если есть вопросы / пожелания, задавайте их в комментариях, или в группе ВК.

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!