BearLibTerminal - псевдоконсольное окно для рогалика

Форум библиотеки BeaRLib

Модератор: Apromix

Аватара пользователя
Apromix
Мастер
Сообщения: 1061
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Apromix » 11 мар 2017, 15:54

Посмотрел 8 и 9 и сделал проще :) С print'ом, выводящим в область так вообще просто получилось.

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

procedure TMsgLog.Render;
var
  L: string;
begin
  if (Trim(MsgLog.Msg) = '') then
    L := '' else L := '[color=yellow]' + FMsg + '[/color]';
  Terminal.ForegroundColor(clGray);
  Terminal.Print(Log.Left, Log.Top,
  Log.Width, Log.Height, FLog.Text + L,
  TK_ALIGN_BOTTOM);
end;
Изображение Изображение

Аватара пользователя
Apromix
Мастер
Сообщения: 1061
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Apromix » 12 апр 2017, 20:49

Похоже на ошибку. Строка

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

1 [color=red] 2 [color=green] 3 [/color] 2 [/color] 1
в принте не корректно работает. То есть не соблюдается вложенность. Или так было задумано?
Изображение Изображение

Аватара пользователя
Cfyz
Сообщения: 751
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 13 апр 2017, 12:31

Это не то, чтобы было задумано, но да, вложенности нет. Это даже в доках отмечено. Вроде бы это по какой-то причине получилось, но почему именно вспомнить не могу. Выглядит довольно неинтуитивно, надо исправить будет.
Cfyz теперь - наглая морда.

Аватара пользователя
Apromix
Мастер
Сообщения: 1061
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Apromix » 20 апр 2017, 20:06

Как вывести свое сообщение в лог терминала? В группе log нету чего-то типа msg или text?
Изображение Изображение

Аватара пользователя
Cfyz
Сообщения: 751
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 24 апр 2017, 11:28

Так функций по работе с логом и вовсе нет, я вообще про лог не сильно пока задумывался. В принципе можно добавить какой-нибудь terminal_log(...). Правда так у каждой либы по своему логу может быть и неплохо бы придумать какой-то способ писать сообща, но это не так просто.
Cfyz теперь - наглая морда.

Аватара пользователя
Apromix
Мастер
Сообщения: 1061
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Apromix » 26 апр 2017, 19:26

Пока в лог такой код:

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

Game.Log(Format('Village: %dx%d', [AX, AY]));
... пишется так:

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

22:21:02.984 [info] Trying to set "Log: Village: 34x90"
22:21:02.984 [debug] Group "Log":
22:21:02.984 [debug] * "_" = "Village: 34x90"
22:21:02.984 [error] Failed to set some options: Failed to parse tileset offset 
Содержимое метода лог предельно простое:

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

procedure TGame.Log(S: string);
begin
  terminal_set('Log: ' + S);
end;
Может можно как то улучшить без внес. правок в код терминала?
Изображение Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость