Вывод символов в полноэкранном режиме Free Pascal

Темы, связанные с проектированием и программированием roguelike-игр

Модераторы: Sanja, Максим Кич

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение СамСом » 29 сен 2009, 11:58

Не ну на турбо оно то работает, но смысл. Нужно как бы на фри переходить, а вот в нём куча вопросов.
Придётся ждать Максима Кич'а. Может ещё подскажет как заставить заработать в фри паскале эту вот строку

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

   Screen : array[1..2000,1..2] of byte absolute $B800:0;  
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Aerton » 29 сен 2009, 12:22

Sanja писал(а):прямое обращение к видеобуферу (адрес 0B800:0000). Ускорение было в разы. Т.е. даже удвоенный экран 80х50 почти мгновенно перерисовывался.
Не в DOS - не вариант.

Правда, посмотрите, как это в Valkyrie?

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Sanja » 29 сен 2009, 12:54

Ну дык, для такого обращения к памяти нужен real mode :D И FPC go32v2, а не для Windows. Надо порыться у себя в архивах, точно помню что на FPC делал работу с консолью.

Так, и Валькирию заодно посмотрюю.

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение СамСом » 29 сен 2009, 13:07

Да и правда я малёхо тупонул. Но всё равно прямой переход на работу с консолью мне в ближайшем будущем не светит. Вот когда разберусь с паскаликом и перейду к дельфи тогда возможно, а пока просто будет медленная отрисовка.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Эльф
Сообщения: 115
Зарегистрирован: 12 июл 2007, 16:39

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Эльф » 29 сен 2009, 13:10

в любом случае, всем спасибо за ответ.
может быть подскажете, какие еще есть хорошие компиляторы паскаля под винду?

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

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Sanja » 29 сен 2009, 13:25

Ну, напоследок проверьте работу с модулем Video. Судя по комментариям в Валькирии именно этот модуль используется для текстового режима

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

// Implements an basic output system for Valkyrie, based
// on FP Video. System aims to be platform independent,
// tested on FreeBSD, Linux, Win32 and GO32V2 targets.
Ссылка на обзор модуля:
http://www.freepascal.org/docs-html/rtl ... index.html

И судя по ней принцип работы тот же, что и при обращении к видеобуферу в real mode. А тут ещё и независимость от платформы гарантируют.

Да, кстати, насчёт перехода на другой компилятор/язык. А вот автор DoomRL не спасовал перед трудностями и остался на FPC. Написал два рогалика, движок, да ещё и мечтает доделать свой эпический GenRogue. Всё на том же FPC. И если сложности работы с консолью сравнить с другими сложностями, которые обязательно встретятся при продолжении работы над рогаликом. То это будет примерно 1:20. Т.е. если вы с этим не разберётесь, то в дальнейшем точно засыпитесь. Учитесь разбираться с проблемами, ё-моё.

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение СамСом » 29 сен 2009, 13:39

Просто офигенный компилятор TMT Pascal. Всё работает, нет проблем с ассемблером, IDE виндовсовское. Но таки лучше работать FPC так как развивая навыки всё равно на него пересядешь.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Sanja » 29 сен 2009, 14:23

Кстати, да! Поддерживаю насчёт TMT Pascal.

Аватара пользователя
Эльф
Сообщения: 115
Зарегистрирован: 12 июл 2007, 16:39

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Эльф » 29 сен 2009, 17:22

Ну, напоследок проверьте работу с модулем Video.
Ох, спасибо. Пока что я в нем еще до конца не разобрался, но засунул в компилятор примеры по ссылкам, и вроде даже в полном экране отрисовывает великолепно. Особенно, кстати, радует
pdateScreen synchronizes the actual screen with the contents of the VideoBuf internal buffer. The parameter Force specifies whether the whole screen has to be redrawn (Force=True) or only parts that have changed since the last update of the screen.
Правда, смущает:
Remark: The video unit should not be used together with the crt unit. Doing so will result in very strange behaviour, possibly program crashes.
но, надеюсь, на Readkey это не распространяется.

upd. Впрочем, там какой-то альтернативный юнит keyboard еще есть.

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Харука-тян » 04 окт 2009, 07:43

А я не могу не порекомендовать библиотеку SDL для ввода-вывода.
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Эльф
Сообщения: 115
Зарегистрирован: 12 июл 2007, 16:39

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Эльф » 04 окт 2009, 15:45

Да мне какбы пока только полуграфика нужна.

Пользуясь случаем хочу сказать, что unit video работает на ура, я им весьма доволен и всем рекомендую.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Максим Кич » 05 окт 2009, 09:28

СамСом писал(а):Не ну на турбо оно то работает, но смысл. Нужно как бы на фри переходить, а вот в нём куча вопросов.
Придётся ждать Максима Кич'а. Может ещё подскажет как заставить заработать в фри паскале эту вот строку

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

   Screen : array[1..2000,1..2] of byte absolute $B800:0;  
А при чём тут я? Я могу поделиться своими наработками на Delphi, если кому-то надо. Та часть, которая отвечает за вывод символов работает как часы, но у меня нельзя задать фон символа.
Dump the screen? [y/n]

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение СамСом » 05 окт 2009, 14:36

Максим Кич писал(а):А при чём тут я? Я могу поделиться своими наработками на Delphi, если кому-то надо. Та часть, которая отвечает за вывод символов работает как часы, но у меня нельзя задать фон символа.
А у тебя кажется был порт под ДОС или я ошибаюсь.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение Максим Кич » 05 окт 2009, 21:13

СамСом писал(а):
Максим Кич писал(а):А при чём тут я? Я могу поделиться своими наработками на Delphi, если кому-то надо. Та часть, которая отвечает за вывод символов работает как часы, но у меня нельзя задать фон символа.
А у тебя кажется был порт под ДОС или я ошибаюсь.
Нет, у меня такого не было.
Dump the screen? [y/n]

JustHarry
Сообщения: 655
Зарегистрирован: 30 июл 2010, 17:13

Re: Вывод символов в полноэкранном режиме Free Pascal

Сообщение JustHarry » 09 окт 2010, 14:24

С модулем Видео во фри паскале я разобрался, а как выводить цветные символы с его помощью - нет. Подскажите, пожалуйста!

Ответить

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

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