Как сделать игру qsp

QSP Уроки

Содержание

Вводное слово, Комментарии

Урок 1. Локации, Действия, Переходы

Текстовый квест в QSP состоит из отдельных локаций, на которых могут выполняться различные игровые действия. Каждая локация имеет начало (тут же указывается имя локации), код локации (середину) и конец (знак «-», минус).

Проигрывание квеста начинается с самой первой локации. Традиционно эта локация называется «Начало». Для того, чтобы вывести в игре текст, вы просто пишете строку в коде локации, заключённую в кавычки («’» или «»»).

Вторая локация создаётся точно так же, как и первая. Как можно заметить, действие создаётся командой «ACT», после которой идёт название действия в виде строки, заключённой в кавычки и двоеточие. После двоеточия пишутся инструкции, которые игра выполнит после того, как игрок попытается выполнить действие. А после инструкций ставится команда «END», которая означает конец действия. Если инструкция одна, то мы можем писать её сразу после двоеточия, на той же строке, в этом случае «END» ставить не обязательно (см. Вторая_локация). В нашем случае инструкциями является переход на другую локацию. Он осуществляется командой «GOTO», после которой идёт имя новой локации, заключённой в кавычки.
Как вы уже заметили, все строки в QSP заключены в кавычки («’» или «»»), это специфика синтаксиса, которую необходимо соблюдать.
Отконвертировав этот пример, вы сможете походить по двум локациям.
Это основа всех квестов на QSP. Дальше мы попробуем неспеша сделать небольшой квест, в каждом новом уроке добавляя ему новые элементы, пока не охватим все возможности QSP.

Урок 2. Переменные, Условия

Можете откомпилировать и походить по городу.
Теперь нам нужно добавить игроку деньги и механизм их зарабатывания. Деньги мы реализуем с помощью переменных. Переменные бывают двух типов: строковые, в которые можно записать любой текст, и числовые, куда можно записать любое целое число. В нашем случае мы будем пользоваться числовыми переменными. Чтобы присвоить переменной какое-либо значение, нужно написать её имя, поставить знак равно и указать значение, которое мы хотим записать в переменную.

Сам механизм зарабатывания денег будет у нас очень простым. Нужно будет перенести 3 ящика и тогда бригадир будет давать игроку 5 монет. Для этого нужно будет сделать ещё одну переменную, в которой будет указано число перенесённых игроком ящиков и если их 3, то добавлять игроку деньги, и очищать счётчик ящиков. Наш квест станет таким:

Для того, чтобы в тексте локации вывести значение переменной используется конструкция «’ >’». Таким образом мы изменили все локации, чтобы на них выводилось количество монет у игрока. К тому же, в локации «Порт» показывается количество ящиков, которое нужно перенести, чтобы получить деньги. Условия в QSP задаются командой «IF», после которой идёт само условие и ставится двоеточие. Затем идут инструкции, которые выполнятся, если условие верное и ставится команда «END», которая завершает условие. В нашем случае мы проверяем, равна ли переменная «Ящик» трём. Если равна, то мы увеличиваем переменную «Деньги» на пять и приравниваем переменную «Ящик» к нулю, чтобы можно было заново таскать ящики и зарабатывать деньги. Чтобы текст игры обновился и игрок увидел новые значения переменных, нужно перейти на ту же локацию. Отконвертируйте и запустите пример, теперь игрок сможет зарабатывать деньги переноской ящиков.

Урок 3. Инвентарь

Теперь нам нужно добавить игроку возможность покупать различные предметы в магазине и затем дарить. Для предметов очень хорошо подходит Инвентарь. Теперь купленные предметы игрок сможет носить с собой и дарить своим близким, когда захочет.
Чтобы добавить предмет в инвентарь, есть команда «ADDOBJ», после которой идёт имя предмета. А для того, чтобы удалить предмет, есть команда «DELOBJ», после которой также идёт имя предмета, который мы хотим удалить.

Урок 4. Настройки, Форматирование

В этом уроке мы рассмотрим, как сделать наш квест более привлекательным. В первую очередь следует настроить интерфейс так, чтобы в нём не оставалось ничего лишнего, отвлекающего от игры. Если вы сейчас запустите наш пример, то увидите, что мы не используем «поле дополнительного описания» (справа внизу) и «командную строку» (внизу). Чтобы они нам не мешали, их нужно отключить. Делается это следующим образом:

Теперь нам нужно сделать так, чтобы наш текст был более подходящим для нашего квеста. Для этого есть 4 переменные.

Есть ещё один, наилучший, на мой взгляд, способ сделать ваш текст внешне более привлекательным. Использование HTML. Язык гипертекстовой разметки документов очень хорошо подходит для этой цели. С помощью него можно не только задавать цвет, размер и шрифт текста, но и делать это для отдельных слов, фраз или даже букв, а так же позиционировать текст на экране. Например, можно расположить заголовки по-центру строки, или справа. Для этого нужно переменной USEHTML задать значение, отличное от 0, например 1. В следующем примере я приведу лишь небольшую часть возможностей, которых, впрочем, будет достаточно для оформления игры.

Источник

Как сделать игру qsp

Он создан для авторов, не имеющих опыта в программировании.

Последовательно и внимательно выполнив все задания из учебника, вы освоите QSP настолько, чтобы самостоятельно создавать свои игры. Благодаря подробным инструкциям и скриншотам, а также простоте языка QSP, это будет несложно.

Этот учебник будет вам полезен только в том случае, если вы будете на самом деле выполнять описанные в нем задания. Простое «чтение» уроков, а также «выполнение в уме» сведет эффект учебника к нулю. Выполнять уроки следует только в той последовательности, в которой они написаны, не пропуская ни одного.

Для того, чтобы приступить к выполнению заданий, убедитесь, что вы

Всё есть? Смело приступаем к первому уроку!

Урок первый. Создаём игру.

Запускаем QGen. Выбираем меню «Утилиты\Настройки».

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Открываем вкладку «Пути».

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Указываем «Путь к плееру» и «Путь к справке». Нажимаем «ОК».

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Нажимаем «ОК».
В поле описания локации(курсор находится в нём по умолчанию) пишем

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Нажимаем «Сохранить».
Появится окошко для ввода пароля.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Ничего вводить не нужно, нажимаем «OK».
Запускаем игру, для этого нажимаем синий треугольник.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Запустится плеер QSP с нашей игрой.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Закрываем окно плеера. В поле «Выполнить при посещении» пишем

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Итог: в этом уроке мы научились делать начальную настройку QGen, сохранять игру, создавать игровые локации, показывать текст в поле описания, отключать неиспользуемые окна и запускать игру прямо из QGen.

Урок второй. Переходы по локациям.

В описании локации «Начало» удаляем строку «Привет, мир!» и пишем

Создаём локации «Об игре», «Об авторе».
В описании локации «Об игре» пишем

В описании локации «Об авторе» пишем

У нас есть три локации, осталось связать их вместе, сделать переходы между локациями. Для этого нам нужно добавить «действия» для каждой локации.
Выбираем в списке слева локацию «Начало» двойным щелчком мыши.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Откроется вкладка с заголовком «Начало».

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

В нижней части окна есть кнопка «Добавить действие», нажимаем её.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

В поле для ввода текста, находящемся правее и ниже названия действия, пишем

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Теперь у нас есть три локации, связанные переходами.
Запускаем игру, смотрим, что получилось.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Нажимая действия, мы сможем свободно перемещаться между локациями.

Итог: в этом уроке мы научились создавать действия, осуществлять переходы по локациям.

Урок третий. Простейшая игра с выбором.

Создаём локацию «Развилка». В описании пишем:

Создаём локацию «Выиграл». В описании пишем:

Создаём локацию «Проиграл». В описании пишем:

Мы создали три игровые локации, теперь сделаем переходы между ними.
В локации «Начало» создаём действие «Играть» с переходом в локацию «Развилка».
В локации «Развилка» создаём три действия: «Переплыть реку» с переходом в локацию «Выиграл», «Налево вдоль реки» и «Направо вдоль реки» с переходом в локацию «Проиграл».
В локации «Проиграл» создаём действие «Начать сначала» с переходом на локацию «Начало».

Запускаем. Первая игра готова!

Итог: в этом уроке мы научились создавать в игре выбор, от которого зависит развитие сюжета.

Урок четвертый. Переменные.

В переменных хранится информация обо всем, что изменяется в процессе игры. Автор называет переменные так, как ему удобно, главное следить за тем, чтобы в имени переменной не было других знаков, кроме букв, цифр и символов подчеркивания. Пробелы в имени не допускаются, для разделения пользуйтесь подчеркиванием, вот так: моя_первая_переменная. Если в начале имени стоит знак «$», значит, в переменной хранится текст, если нет, то в ней хранится число.

Основные действия с переменными, это запись, чтение и вывод.

В коде это выглядит так:

Мы записали в переменную «a» числовое значение 5. Знак «=» здесь не обозначает равенство, как в математике, он обозначает операцию присваивания. Переменная, в которую мы записываем значение, должна всегда стоять слева от знака «=».

Как же записать в переменную не число, а текстовую строку? Очень просто. Во-первых, не забываем ставить знак «$» в начале имени переменной. Во-вторых, заключаем строку в апострофы.

Мы записали в переменную «$строка» текстовое значение «Быть или не быть?»

Чаще всего, значение переменной нам требуется для нового присваивания, либо для проверки условия.

Вот, например, мы прибавляем 10 к переменной «a», и записываем результат в переменную «k».

Допустим, в переменной «a» было записано 5. Тогда k = 5 + 10 = 15. В переменной «k» теперь хранится значение 15. Обратите внимание, в этой строке кода было произведено чтение значения переменной «a», вычисление выражения «a + 10», и запись результата в переменную «k».

Уменьшаем значение переменной «k» на 2.

Для текстовых переменных существует операция «склеивания строк», записывается она знаком «+».

Теперь в переменной «$вопрос» хранится текстовое значение «Быть или не быть? Вот в чем вопрос.»

Использование переменных в условиях мы разберем в следующем уроке.

Для вывода используйте двойные угловые скобки, » >». Между двойными угловыми скобками напишите имя переменной, например » >», или » >», и при выводе плеер сам подставит текущее значение переменной, при этом угловые скобки выведены на экран не будут.

Начнем применять переменные на практике. Создайте новую игру, назовите ее «Planet Master».

Создайте локацию «Начало», в описании напишите «Создайте свою планету и сможете управлять ей в меру своих скромных возможностей.»

В коде локации(поле «выполнить при посещении») отключите неиспользуемые окна. На этот раз окно инвентаря нам не понадобится, поэтому его тоже отключаем.

Создайте действие «Создать планету» с переходом на локацию «СоздатьПланету».

Создайте локацию «СоздатьПланету». В коде локации пишем

Вторая строка задает значение для числовой переменной Температура. В этой переменной будет храниться текущая температура для планеты.

Создайте действие «Управлять планетой» с переходом на локацию «Планета».

Создайте локацию «Планета». В описании локации пишем

При выводе на экран, вместо > и > будут подставлены значения указанных переменных.

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

Создайте действие «Поднять температуру на 10 градусов».

В коде действия пишем

В первой строке, мы увеличиваем на 10 единиц значение переменной Температура. Если температура планеты была 100 градусов, то при выборе этого действия температура планеты станет 110 градусов, и так далее.

Зачем же нам «переходить» на локацию, на которой мы и так уже находимся? Это нужно для того, чтобы обновить текст описания локации. Переменная Температура была изменена, но изменения в описании появятся только при «входе» на локацию, поэтому мы должны явно задать переход.

Создайте аналогичное действие «Снизить температуру на 10 градусов».

Создайте действие «Установить комнатную температуру». Код действия:

При выборе этого действия, температура планеты станет 25 градусов, вне зависимости от того, какой она была. Обычное присваивание.

Создайте действие «Создать новую планету» с переходом на локацию «СоздатьПланету». Когда игроку надоест одна планета, он может выбрать это действие и создать новую.

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Итог: в этом уроке мы узнали, что такое переменная, как вывести значение переменной на экран, какие операции возможны с переменными.

Урок пятый. Условия.

Когда нам требуется задать только действие1, запись будет короче:

Напишем игру, в которой прохождение будет зависеть от того, побывал ли игрок на некоторой локации.

Создайте локацию «Начало», в описании напишите «Игра про космос.»

В коде локации отключите неиспользуемые окна. Окно инвентаря в этой игре не понадобится, поэтому его тоже отключаем. Для удобного перезапуска игры из локации проигрыша, добавим оператор KILLALL, он очищает все переменные и инвентарь. Теперь достаточно сделать переход на локацию «Начало», чтобы состояние игры было «сброшено».

Создайте действие «Играть» с переходом на локацию «Играть».

Создайте локацию «Играть». В описании пишем: «Вы долго исследовали пояс астероидов и настала пора возвращаться на Землю.»

Создайте действие «Связаться с диспетчером» с переходом на локацию «Диспетчер».

Создайте действие «Лететь на Землю». В коде действия пишем условие:

Создайте локацию «Диспетчер». В описании пишем

В коде локации пишем

Здесь мы «запоминаем», что игрок зашел в локацию, записав в переменную Курс_Полёта значение 1. Если игрок не заходил в локацию, то значение переменной будет 0.

Создайте действие «Завершить сеанс связи» с переходом на локацию «Играть».

Создайте локацию «Победа». В описании локации пишем: «Вы благополучно долетели до Земли. Хорошо, что вы связались с диспетчером и получили у него курс полёта.»

Создайте действие «Начать сначала» с переходом на локацию «Начало».

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Итог: в этом уроке мы научились использовать условия.

Урок шестой. Берём предметы.

В текстовых играх часто применяются предметы. Для того, чтобы игрок всегда знал, какие предметы у него с собой, в QSP есть специальное окно инвентаря(с заголовком «Предметы»). Когда игрок берет предмет, тот появляется в инвентаре.

Для того, чтобы добавить предмет в инвентарь, используется оператор ADDOBJ, для того, чтобы удалить предмет из инвентаря, используется оператор DELOBJ.

Есть три основных способа брать предмет, рассмотрим каждый на примере.

Создайте локацию «Играть». В описании напишите:

Берем предметы без ограничений.

Напишем действие для того, чтобы брать алмазы. Создайте действие «Взять алмаз». В коде действия пишем:

Действие готово. Теперь, когда игрок выберет это действие, в инвентаре добавится предмет «Алмаз». Сколько раз нажмет, столько алмазов добавится, без ограничений по количеству.

Берем не более 5 предметов.

Напишем действие для того, чтобы брать рубины. По замыслу игры, игроку позволено взять только 5 рубинов. Создайте действие «Взять рубин». В коде действия пишем:

В этом действии делается проверка на количество рубинов, которые уже взял игрок. Если количество рубинов меньше 5, то он может взять еще один рубин. Если нет, то выводим строку текста.

Обратите внимание на строку

Здесь переменная «Количество_Рубинов» увеличивается на 1 каждый раз, когда игрок берет рубин. Такую переменную называют «счетчиком». Пока игрок не взял ни одного рубина, в этой переменной будет значение 0. Когда игрок будет брать рубины, это значение будет увеличиваться, пока не достигнет максимального значения 5.

Берем только один предмет.

Напишем действие для того, чтобы взять меч. Это действие будет присутствовать на локации только в том случае, если игрок еще не взял меч. Поэтому мы не создадим действие как обычно, а напишем его в коде самой локации, «обернув» его в условие. Пишем в коде локации:

Переменная «Меч» принимает всего два значения: 0 и 1. Такую переменную назвают «флажком». Изначально в переменной «Меч», как и в любой другой числовой переменной, хранится значение 0. Условие «Меч = 0» выполняется, и действие «Взять Меч Справедливости» добавляется в список действий.

Рассмотрим подробно, что произойдет, когда игрок выберет это действие.

В инвентарь добавляется предмет «Меч Справедливости».

В переменную «Меч» записывается значение 1. Мы «установили флажок», теперь игра «помнит», что игрок взял меч.

Переход на текущую локацию. Заново выводится описание локации, заполняется список действий, и выполняется код локации. Условие «Меч = 0» не выполнится, и поэтому действие «Взять Меч Справедливости» не будет добавлено.

Урок седьмой. Применение предметов.

Создайте локацию «Начало», с описанием «Игра про Дверь.» и действием с переходом на локацию «Комната». Отключите строку ввода.

Создайте локацию «Комната». В описании пишем: «Вы стоите в центре комнаты, заполненной грудами ненужного хлама. У дальней стены вы видите дверь.»

Создайте действие «Подойти к двери» с переходом на локацию «Дверь».

Теперь сделаем взятие предмета. Предмет можно взять только один раз, поэтому используем третий способ из предыдущего урока. Пишем в коде локации:

Обратите внимание, что строка «На полу вы видите небольшой ключ.» находится внутри условия. Благодаря этому, она будет на экране до тех пор, пока игрок не возьмет ключ.

Также обратите внимание на строку

Создайте локацию «Дверь». В описании пишем: «Дверь заперта.»

Создайте действие «Отойти от двери» с переходом на локацию «Комната».

Сделаем применение предмета. Пишем в коде локации:

Рассмотрим подробно. Условие «OBJ ‘Ключ'» определяет, находится ли предмет «Ключ» в инвентаре. Действие «Открыть дверь ключом» будет доступно тогда, когда предмет «Ключ» находится в инвентаре.

Обратите внимание на строку

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

Создайте локацию «Победа» с описанием «Вы выбрались из комнаты.»

Как сделать игру qsp. Смотреть фото Как сделать игру qsp. Смотреть картинку Как сделать игру qsp. Картинка про Как сделать игру qsp. Фото Как сделать игру qsp

Итог: в этом уроке мы научились применять предметы в игре.

Теперь вы овладели всеми основными приемами разработки игр на QSP, и уже можете начинать писать свои игры.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *