forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Input_ или ввод другими словами (http://forum.boolean.name/showthread.php?t=15926)

DarkMedveD 27.11.2011 17:50

Input_ или ввод другими словами
 
Столкнулся с проблемой. Необходимо использовать команду Input, но проблема в том, что она работает только со стандартными шрифтами. То есть если я использую FastText или FastImage, то загруженные мною шрифты не работают.

Интересно, как разработчики пропустили такую команду?
Или может я что-то не так понял и неправильно использую?

К примеру вывод текста (Text) заменен на ускоренный (DrawText)
Или (Text_) в случае с FastText. А подобного аналога для Input не предусмотрели.

Так же интересно, есть ли аналоги библиотек, которые позволяют изменить шрифт при вводе информации в переменную.

Spy4433 27.11.2011 18:02

Ответ: Input_ или ввод другими словами
 
ну технология тут простая
key=getkey()
if key=8 then msg$=mid(msg$,1,len(msg$)-1)
if key<>0 and key<>8 then
msg$=msg$+chr(key)
endif


text 10,10,msg$ ; - Здесь оторбражение текста это может быть drawtext или как там команда :)

P.S вообщем могут быть недочеты и ошибки, писал на память

DarkMedveD 27.11.2011 18:10

Ответ: Input_ или ввод другими словами
 
Я консоль делаю, дружище. Мне нужно видеть текст, который вводится пользователем, и поверь, такой вариант я уже пробовал..(


P.S. Сделать цикл с выводом текст в реальном времени не получится, там нужно обновление экрана, чтобы видеть вводимый текст.

Spy4433 27.11.2011 18:16

Ответ: Input_ или ввод другими словами
 
хм расскажи мне для чего это, просто сделать подобие консоли можно и обновляя экран и тогда можно применить этот способ :)

Nerd 27.11.2011 18:18

Ответ: Input_ или ввод другими словами
 
Цитата:

Мне нужно видеть текст, который вводится пользователем
Что мешает рисовать текст после обновления ввода?

DarkMedveD 27.11.2011 18:26

Ответ: Input_ или ввод другими словами
 
Смотрите, как обстоят дела.

В игре при нажатии кнопки должна открываться консоль. Сначала я думал сделать это примерно таким же способом, как уже указывалось выше. То есть после нажатия инициализировался цикл на нажатие клавиши Enter, в котором была переменная конечного текста и текущего символа, который забивался через GetKey(). Затем проверка на корректный символ, добавление к концу строки и вывод. Проблема была в том, что во время работы этого цикла все остальные функции игры переставали работать. То есть игра замирала. Я попробовал сделать этот цикл как бы отдельной игрой, понапихал туда все, что было в основном цикле но тут возникла другая проблема - появлялись артефакты из-за команды RenderWorld, затем из-за FastImage тоже сложности возникали, со сменой буферов.

В общем - не вариант это. Я попробовал все, это слишком большая цена за консоль.

Ну и остался последний, но не самый неудачный вариант - использовать Input. Но и тут не бед косяков. Шрифт, который у меня используется в игре не работает, используя библиотеки (об этом я писал в самом начале) .

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

Spy4433 27.11.2011 18:38

Ответ: Input_ или ввод другими словами
 
а все остальные функции загнать в в условие ?
пример:

repeat

if console=0 then
if keydown(200) then moveentity player,0,0,0.1
....
и тд
endif

if console=1 then
отображение консоли
endif




until keyhit(1)

DarkMedveD 27.11.2011 18:45

Ответ: Input_ или ввод другими словами
 
Хм. Попробую. Спасибо.

Alex__Noc 22.06.2012 02:06

Ответ: Input_ или ввод другими словами
 
складывай символы в слова!!!


Часовой пояс GMT +4, время: 23:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot