logo.aleks Versus
Приветствую Вас Гость
 

Подключаемый модуль и мини-игра "Unlock"

v.0.1

Содержание

  1. Подключение и запуск
  2. Правила игры

Подключение и запуск

Мини-игра "unlock" разрабатывалась как модуль, подключаемый к основной игре. Тем не менее в самом файле модуля присутствует локация --test--, предназначенная для проверки работы модуля, и работающая как самостоятельная игра.

Чтобы обеспечить полную совместимость с кодом основной игры, все имена локаций мини-игры "unlock" (кроме --test--) начинаются с "unlock.game.". Все имена переменных начинаются с "unlock_game_". Если в своей игре вы используете названия переменных или имена локаций, начинающихся с тех же сочетаний символов (что вряд ли), переименуйте все переменные и локации мини-игры, чтобы они начинались с других сочетаний символов. Внимание: перименовывая локацию, не забудьте заменить названия этой локации во всех обращениях к ней в коде (goto... gosub... и т.д.). Однако, скорее всего, вы не используете переменных и локаций с подобными названиями, поэтому можете не менять код мини-игры.

Чтобы подключить мини-игру к своей игре, вы должны сначала поместить файл "unlock.qsp" и папку "res" в папку со своей игрой.

Внимание: папка "res" обязательно должна лежать в папке с вашей игрой. Все изображения, к которым будет обращаться модуль мини-игры "unlock" доступны по относительному пути "res/img/ico/unlock.ico". Если вы поместите изображения в другую папку, отредактируйте пути в коде мини-игры. Файл "unlock.qsp" не обязательно размещать в папке с основной игрой, а можно - во вложенной папке, но тогда для следующей команды указывайте не только имя файла, но и относительный путь к нему.

Теперь, когда все файлы лежат в нужных местах, вы можете добавить мини-игру к своей игре введя команду

addqst 'unlock.qsp'

или

inclib 'unlock.qsp'

в зависимости от версии плеера.

Работа мини-игры тестировалась в плеерах Quest Soft Player 5.7.0 и Quest Navigator 0.0.2x - в обоих случаях мини-игра была полностью работоспособна.

Для вызова мини-игры на экран, в нужном месте введите команду:

gosub 'unlock.game.get'

Через запятую можно указать следующие аргументы:

args[0] - количество кнопок. Кнопками названы блоки, нажатие на которые приводит к изменению состояния других блоков. Нижний предел: 3. Верхнего предела нет, но не рекомендуется задавать количество кнопок больше 9.

args[1] - количество шагов перемешивания. По-умолчанию 1. Количество шагов перемешивания нужно варьировать в зависимости от количества кнопок и количества цветов. Однозначной формулы нет, однако, чтобы не утомлять игрока, количество шагов перемешивания так же не должно превышать девяти, хотя можно сделать и больше.

args[2] - количество цветов кнопок. Нижний предел 2 цвета, верхний предел - 7 цветов. Увеличение количества цветов приводит к усложнению игры. Следует заметить, что цвета - это всего лишь условное название отличительных особенностей кнопок. Вы можете использовать изображения растущих колонок, башен, изображения игральных костей, карт, шахмат - всё что угодно; или вовсе убрать изображения, оставив лишь числа.

args[3] - режим игры. В игре предусмотрены три режима. По-умолчанию 0. 0 - режим, в котором изменяется состояние всех кнопок, кроме нажатой. 1 - режим, в котором изменяется состояние нажатой и смежных ей кнопок. 2 - режим, в котором изменяется состояние кнопок смежных нажатой кнопке.

args[4] - дополнительные попытки. Количество попыток для решения задачи не может быть меньше количества шагов перемешивания, иногда это означает, что разгадка лежит в обратном повторении действий компьютера, когда он создавал загадку. Но вы можете облегчить игроку жизнь, дав ему большее количество попыток сложить головоломку. Верхний предел конечного числа попыток 9998. Если задать значение 9999 и выше, количество попыток будет бесконечным.

$args[5] - динамический код, который будет выполнен при соблюдении условий победы. Код передаётся в виде текста. Это может быть простая фраза: "вы выиграли" или нечто более сложное. В примере, представленном на локации --test-- этот код вызывает следующую задачу, более сложную.

$args[6] - динамический код, выполняемый при отказе от решения задачи. В первую очередь он предназначен для фиксации задачи. Например, в игре "Steel and Magic" (эту игру я всё ещё пишу) планировалось использовать мини-игру для вскрытия замков. Первый вызов задачи формировал её случайным образом, но затем игрок мог отказаться взламывать замок, а задача должна остаться прежней. Динамический код сохранял данные задачи, чтобы потом восстановить их при повторной попытке взломать замок. В примере, представленном на локации --test--, задача сохраняется в текущем виде, а при возобновлении обращения к ней восстанавливается.

$args[7] - динамический код, который будет выполнен при соблюдении условий проигрыша. Это может быть простая фраза: "вы проиграли", но может быть и нечто более сложное. В примере --test-- этот аргумент уничтожает все данные по задаче, задача просто теряется.

$args[8] - динамический код, который выполняется перед тем, как сформировать новую задачу. В примере --test-- это код, который восстанавливает текущее состояние задачи, если она была закрыта.

Интерфейс миниигры формируется двумя локациями: "unlock.game.resetScreen" и "unlock.game.get.lnk". Первая локация перерисовывает экран мини-игры (здесь и таблица, и информация и кнопки), вторая генерирует ссылки кнопок. Чтобы изменить интерфейс мини-игры в соответствии со своими предпочтениями, вам придётся редактировать эти локации.

Правила игры

Правила игры очень просты. Нажимая на кнопки, нужно добиться, чтобы они приобрели один цвет. В исходном виде мини-игры - зелёный.

В зависимости от режима игры, могут изменяться разные группы кнопок, но цвета всегда меняются в одинаковом порядке: ... зелёный ➔ голубой ➔ синий ➔ фиолетовый ➔ красный ➔ оранжевый ➔ жёлтый ➔ зелёный ➔ голубой ➔ ...

Вам даётся определённое количество попыток (нажатий), чтобы решить головоломку. Если вы уложились в нужное количество попыток, вы выиграли, если нет - проиграли.

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


Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2020
Полезные ссылки:
Наверх