Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 17.10.2007, 15:40   #1
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Как создать консоль?

Как создать консоль?
Проблема только в том что команда input все портит, у меня не получается выйти из консоли.
while cons=true
if keyhit(59) then cons=false
command$=input(":>")
select command
case "test"
print "ok"
end select
wend
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 15:47   #2
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: Как создать консоль?

пиши свой инпут. Пользуйся командой getkey(), тока помни что она возвращает код ASCII!
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 15:53   #3
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Как создать консоль?

Вспомнил что где то на форуме видел туториал по консоли, или ошибаюсь?

Как сопоставить аски код и букву?
Function Input(ascii)
select ascii
case 1
return ('a')
case 2
return ('b')
и д
end select
end function

write Input(getKey)
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 16:39   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Как создать консоль?

Юзай GetKey она возвращает сразу ASCII код значка.

gKey=GetKey()
vLine$=vLine+Chr(gKey)
Text 10,10,vLine

В общем, есть таблица ASCII кода. Заметь что заглавные отличаються от прописных, но есть у них радиус, от опр до опр номера - буквы, в общем в справке там есть таблица.
Chr - Возвращает символ из ASCII списка.
GetKey - Получает ASCII код нажатой клавишы.
Варриант подходит для консоли, тем что не застаивает приложение.
input здесь никак не идёт.
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 16:57   #5
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Как создать консоль?

Мне вобщм то неважно работает приложение в данный момент или нет. БИГ СПС за то что напомнил функцию Chr, а то я уже хотел таюлицу символов перебивать.
Ну и надумал еще один способ создания консоли с Input():
While cons=True
If KeyHit(59) Then 
cons=False
EndIf
Locate0,0

IfGetKey() Then
command$ = Input(":>")
EndIf

Rect0,0,800,300,0
RenderWorld
Text0,0,":>"
Flip
Wend
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 17:11   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Как создать консоль?

Ещё для реализации консоли, советую сделать какбы систему базы данных, с классом комманд, и сразу параметрами, и прописывать на каждую комманду действия.
Тоесть:
1. Все заглавные заменяем на прописные (бывает что заглавными ктото написал).
2. Функцией Mid находим пробел, и отделяем левую и правую части.
3. Далее перебираем массив перменных\комманд, и действуем по типу переменной: просто изменяет значение опр переменной/совершает какое либо действие.
Для каждой нужно писать выполнение.
Таким образом будет несложно редактируемый интерфэйс.
Я помню делал связку с xml, было удобно что-либо добовлять новое. Но к сожелению это не С++, где добавление новых, можно реализовать полностью динамично. По крайней мере нужны скрипты, если их к блицу прикрутить (например луа), то будет уже лучше, но всё равно хз, полной динамики с огромными возможностями жобться думаю не удастся.
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 17:15   #7
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: Как создать консоль?

Trilliput, используй тег [blitz]. Так будет круче выглядеть, если еще форматирование созраняешь)))
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 17:17   #8
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как создать консоль?

А в журнале есть такая статья...
http://blitzetcetera.org/index.php/О...ольным_методом
__________________
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 17:24   #9
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Как создать консоль?

использовать while..wend даже удобнее, ненужно отслеживать что ты сейчас находишся в консоли. А то полцчается что набирая некотрые команды у меня герои в игре наинают туда сюда бегать.

Вопрос: как обрабатывать введеную команду? всмысле как доставать параметры из команды? Например CreateEnemy 10,10,10,boll. Так понимаю что надо сначала узнать что это за команда, прочитав до символа пробела, а потом читать параметры через зпт, блин но как это сделать?
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 19:01   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Как создать консоль?

Trilliput, юзай Mid функцию, она возвращает порядковый номер найденого символа.
Насчёт Нормального консоля, пауза нерулит. Прикинь у тебя будет такая ситуация: на тебе облучка, ты делаешь ждать тут получаються потери во времени, переборы, могут возникать большое колличество багов. В общем имхо: не советую. Делай динамику, я проверял намного лучше будет.
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 23:05   #11
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Как создать консоль?

Проблем спаузой в моей программе нет, не та сложность. Наоборот получается даже лучше, мне не нужно следить за "паузой" в игре или за тем что бы клавиши нажатые в консоли не влияли на игру. Ну крутиться себе цикл и пусть крутиться, выполняется же только он!
Ну а вобще пока у меня такой вариант (реалтайм ):
If cons=True
 value=GetKey() 
 If value>=32 And value<=126 Then
   command$=command+Chr(value)
   value=0
 EndIf
  Rect 0,0,800,300,0
 Text 0,0,":>"+command
 
 If KeyHit(28) Then
    For T = 1 To Len(command)
     If Mid(command,t,1) = " " Exit
     icom$=icom+Mid(command,t,1)
   Next
 
    Select icom
    Case "powershot"
      powershot=maxpowershot
   End Select
 
 command=""
 icom=""
  EndIf
EndIf
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 23:14   #12
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Как создать консоль?

Сообщение от dimanche13
А в журнале есть такая статья...
http://blitzetcetera.org/index.php/О...ольным_методом
Я вот эту статью и искал, но после повторного просмотра понял что способ из журнала неподходит. Даже способ ввода команд, хотелось бы несколько за раз и тп.
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 23:26   #13
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как создать консоль?

Сообщение от Trilliput
Даже способ ввода команд, хотелось бы несколько за раз и тп.
да ты не консоль, а транслятор языка чтоли пишешь? минимум команд и всё
debug=[true,false]
savelog=[file]
do [???]
help
...

вобщем 5-10 команд вполне хватит.
__________________
(Offline)
 
Ответить с цитированием
Старый 17.10.2007, 23:35   #14
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Как создать консоль?

Мне нужно прсто менять за раз несколько параметров, иначе в игре хаос начинается. Ну и свой способ всегда понятнее и лучше.
Проблема в том как строку разбирать на элементы.
(Offline)
 
Ответить с цитированием
Старый 18.10.2007, 01:30   #15
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Как создать консоль?

Ой забыл! Сори напутал, не Mid а Instr юзай Крч, указываешь стринг в кором искать, далее стринг (символы), которые искать и далее порядковый номер буквы, начиная с которой искать. Возвращает номер порковый номер первого же совпадения который обнаружит.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консоль из ДЛЛ Mr_F_ C++ 1 07.08.2009 22:27
Сообщение+консоль Dark_Fox 2D-программирование 3 30.06.2009 11:52
Как создать Dll? pipns Разработка LIB 4 16.06.2009 18:11
как создать счетчик фпс?) KAK? TAK! MidletPascal 3 01.05.2009 18:03
Консоль JoKeR_13 3D-программирование 6 29.08.2008 17:29


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com