![]() |
Как создать консоль?
Как создать консоль?
Проблема только в том что команда input все портит, у меня не получается выйти из консоли. Код:
while cons=true |
Re: Как создать консоль?
пиши свой инпут. Пользуйся командой getkey(), тока помни что она возвращает код ASCII!
|
Re: Как создать консоль?
Вспомнил что где то на форуме видел туториал по консоли, или ошибаюсь?
Как сопоставить аски код и букву? Function Input(ascii) select ascii case 1 return ('a') case 2 return ('b') и д end select end function write Input(getKey) |
Re: Как создать консоль?
Юзай GetKey она возвращает сразу ASCII код значка.
gKey=GetKey() vLine$=vLine+Chr(gKey) Text 10,10,vLine В общем, есть таблица ASCII кода. Заметь что заглавные отличаються от прописных, но есть у них радиус, от опр до опр номера - буквы, в общем в справке там есть таблица. Chr - Возвращает символ из ASCII списка. GetKey - Получает ASCII код нажатой клавишы. Варриант подходит для консоли, тем что не застаивает приложение. input здесь никак не идёт. |
Re: Как создать консоль?
Мне вобщм то неважно работает приложение в данный момент или нет. БИГ СПС за то что напомнил функцию Chr, а то я уже хотел таюлицу символов перебивать.
Ну и надумал еще один способ создания консоли с Input(): Код:
While cons=True |
Re: Как создать консоль?
Ещё для реализации консоли, советую сделать какбы систему базы данных, с классом комманд, и сразу параметрами, и прописывать на каждую комманду действия.
Тоесть: 1. Все заглавные заменяем на прописные (бывает что заглавными ктото написал). 2. Функцией Mid находим пробел, и отделяем левую и правую части. 3. Далее перебираем массив перменных\комманд, и действуем по типу переменной: просто изменяет значение опр переменной/совершает какое либо действие. Для каждой нужно писать выполнение. Таким образом будет несложно редактируемый интерфэйс. Я помню делал связку с xml, было удобно что-либо добовлять новое. Но к сожелению это не С++, где добавление новых, можно реализовать полностью динамично. По крайней мере нужны скрипты, если их к блицу прикрутить (например луа), то будет уже лучше, но всё равно хз, полной динамики с огромными возможностями жобться думаю не удастся. |
Re: Как создать консоль?
|
Re: Как создать консоль?
А в журнале есть такая статья...
http://blitzetcetera.org/index.php/О...ольным_методом |
Re: Как создать консоль?
использовать while..wend даже удобнее, ненужно отслеживать что ты сейчас находишся в консоли. А то полцчается что набирая некотрые команды у меня герои в игре наинают туда сюда бегать.
Вопрос: как обрабатывать введеную команду? всмысле как доставать параметры из команды? Например CreateEnemy 10,10,10,boll. Так понимаю что надо сначала узнать что это за команда, прочитав до символа пробела, а потом читать параметры через зпт, блин но как это сделать? |
Re: Как создать консоль?
Trilliput, юзай Mid функцию, она возвращает порядковый номер найденого символа.
Насчёт Нормального консоля, пауза нерулит. Прикинь у тебя будет такая ситуация: на тебе облучка, ты делаешь ждать тут получаються потери во времени, переборы, могут возникать большое колличество багов. В общем имхо: не советую. Делай динамику, я проверял намного лучше будет. |
Re: Как создать консоль?
Проблем спаузой в моей программе нет, не та сложность. Наоборот получается даже лучше, мне не нужно следить за "паузой" в игре или за тем что бы клавиши нажатые в консоли не влияли на игру. Ну крутиться себе цикл и пусть крутиться, выполняется же только он!
Ну а вобще пока у меня такой вариант (реалтайм :mda: ): Код:
If cons=True |
Re: Как создать консоль?
Цитата:
|
Re: Как создать консоль?
Цитата:
debug=[true,false] savelog=[file] do [???] help ... вобщем 5-10 команд вполне хватит. |
Re: Как создать консоль?
Мне нужно прсто менять за раз несколько параметров, иначе в игре хаос начинается. Ну и свой способ всегда понятнее и лучше.
Проблема в том как строку разбирать на элементы. |
Re: Как создать консоль?
Ой забыл! Сори напутал, не Mid а Instr юзай ;) Крч, указываешь стринг в кором искать, далее стринг (символы), которые искать и далее порядковый номер буквы, начиная с которой искать. Возвращает номер порковый номер первого же совпадения который обнаружит.
|
Re: Как создать консоль?
Цитата:
юзай динамический вариант. юзай массивы, чтобы посмотреть на несколько предыдущих команд и заюзать одну из них юзай клавиши управления курсором для перемещения курсора и line для его отрисовки юзай KeyDown(14) - backspace и KeyDown(211) - Del для зачистки юзай еще много чего, и напиши отличную консоль. консоль ето главное в игре, пусть в ней не будет геймплея, графики, звуков, а тока один белый квадрат ездющий вверх и вниз, но если в игре будет отличная консоль - успех ей обеспечен ;) |
Re: Как создать консоль?
Цитата:
|
Re: Как создать консоль?
Цитата:
... может еще что скажеш? ... я понимаю что человек создавший вартэк может позволить себе поязвить, но смысла я в этом невижу ... |
Re: Как создать консоль?
Trilliput, невидишь, а зря :) Опыт - вот что важно. А лень - погубит.
|
Re: Как создать консоль?
а ты консолб в отдельном окне собираешся делать ??
ил так просто на экране ?? просто интересно !! :) |
Re: Как создать консоль?
Немного не так выразился, вобщем каждому свое.
Консоль просто на экране будет + еще дебаг-окно, в нем будут отображаться разные переменные. |
Re: Как создать консоль?
Trilliput, ты угадал, я язвил, простите грешного, но сухо говорить уже достало.
если чисто фактами - то простой инпут, без всяких getkey, без всего выше мною перечисленное, ето все - что надо для небольшой игры, по крайней мере на этапе разработки. насчет определения команды - лучше всего парсить по пробелам и запятой(для отделения параметров). потом select command case: "fuckthemall": kill_all_bots() case: "health":en=en+param(1) end select в param(1..n) - будуит хранится n отпарсенных парметров. На все про все - 20 строк. |
Re: Как создать консоль?
скачай код логова и зацени функцию GameScript
в нутри собственно (additem, removeitem) и будит тебе счастье. код логова находится в соответствующей теме из раздела проекты на этапе разработки |
Re: Как создать консоль?
[quote=HolyDel]Trilliput, ты угадал, я язвил, простите грешного, но сухо говорить уже достало.[/QUOTE]
Если я никогда не делал консоль хочется перебрать много вариантов. Иначе это все похоже на выбор авто по советам, типа по длине двигателя. :mda: |
Ответ: Как создать консоль?
через инпут самый оптимальный вариант! остальное - это буржуйские излишки... консоль она на то и консоль, чтобы юзать во время разработки... ну, или там режим бога перед знакомыми поставить... :)
|
Ответ: Как создать консоль?
Цитата:
if BOT_attack() then playerLIFE = playerLIFE - 1 :-) Цитата:
|
Ответ: Как создать консоль?
|
Ответ: Как создать консоль?
нет. через инпут ето не самый оптимальный вариант. игра должна продолжаться даже при вызванной консоли.
|
Ответ: Как создать консоль?
Цитата:
HolyDel а нафиг во время консоли игре продолжаться, по моему наоборот должна быть пауза... хотя ХЗ... это, конечно, кому как удобнее... |
Ответ: Как создать консоль?
Дык, дай право выбора: жмёшь паузу и открываешь консоль :)
|
Ответ: Как создать консоль?
avel
ну стрелялки все имеют архитектуру Клиент - Сервер тоесть даже если оно запускается на одном компе то там есть клиент и сервер (без выхода в сеть правда .. логически просто) так вот работают они в разных потоках и консоль изначально просто посылает некоторые команды в сервер :) да и сама консоль обычно не ставит на паузу клиент |
Ответ: Как создать консоль?
Цитата:
jimon Цитата:
|
Ответ: Как создать консоль?
avel
через попу написаные - не все ... а правильные стрелялки с расчетом на пьяную фантазию геймдизайнера в большой относительно компании имхо рациональней всего писать с клиент-сервер архитектурой банально даже сохранения так проще делать, не говоря даже о других плюсах етой архитектуры (паралельная разработка, возможность представления ии как полноценого игрока, сразу можно воплотить сетевую игру и тд и тп) из минусов : нужны мозги и правильная архитектура базовых интерфейсов ну конечно может даже и взрослые игры не все так написаны :) я не могу отвечать за всех и вся ... но ето мое имхо :) |
Ответ: Как создать консоль?
jimon ну, а то, что было выше - это мое ИМХО... :)
Цитата:
|
Ответ: Как создать консоль?
avel
потому на работу нанимают только опытный народ как в одной конторе мне сказали : нам нужны опытные программисты, чтобы они пришли и просто копировали свои наработки из старых проектов
|
Ответ: Как создать консоль?
jimon ну, так затем мы здесь все и собрались, чтобы коллекционировать наброски... :) а в споре, как известно, рождается истина!
|
| Часовой пояс GMT +4, время: 04:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot