Оглавление:

Общие комнаты в шпагате с сахарным кубиком: 11 шагов
Общие комнаты в шпагате с сахарным кубиком: 11 шагов

Видео: Общие комнаты в шпагате с сахарным кубиком: 11 шагов

Видео: Общие комнаты в шпагате с сахарным кубиком: 11 шагов
Видео: 23 несчастья или не забывайте снимать линзы 2024, Ноябрь
Anonim
Общие комнаты в шпагате с сахарным кубиком
Общие комнаты в шпагате с сахарным кубиком

Привет, привет и добро пожаловать в мой учебник по созданию Wumpus Hunt в Twine с Sugarcube!

Twine - очень простой инструмент, предназначенный для создания текстовых приключенческих игр! Моя любимая маленькая двоюродная сестра решила создать игру с Twine для своего старшего проекта, и я должен помочь, поэтому я создаю эту серию руководств!

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

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

Теперь у нас есть Wumpus для охоты!

Шаг 1. Для краткости…

Ради краткости…
Ради краткости…

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

Я предполагаю, что вы знакомы с Twine; что вы знаете, как его загрузить (или использовать онлайн-версию), и что вы знаете, как создавать новые отрывки и связывать их вместе. Я также предполагаю, что вы знакомы с некоторыми базовыми концепциями программирования, а именно с переменными и функциями, и с тем, как они используются в Sugarcube.

Я предполагаю, что вы знакомы с игрой Hunt the Wumpus. Эту концепцию сложно описать словами, а объяснение картинками займет целую вечность. Я попытался найти видео или что-то, что объясняло бы это, но не смог найти ни одного, что было бы просто геймплеем без повествования. Думаю, это одна из тех вещей, которые просто передаются из поколения в поколение, и все просто предполагают, что вы знаете об этом. Думаю, я не помогаю с этим.

Шаг 2: Идея

Идея
Идея

Идея этого проекта заключается в том, что мы можем использовать коридоры Twine как отдельные комнаты. Игрок может перемещаться по этим комнатам по ссылкам, и код изменит текст комнаты в зависимости от того, есть там Wumpus или нет.

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

Шаг 3: Создайте несколько комнат

Создать несколько комнат
Создать несколько комнат
Создать несколько комнат
Создать несколько комнат
Создать несколько комнат
Создать несколько комнат
Создать несколько комнат
Создать несколько комнат

Как вы можете видеть выше, я начал с создания сетки комнат 3x3. У меня также есть вводный отрывок, в котором игрок будет начинать, и который связан с одной комнатой в сетке. Код для них очень простой, только текст и ссылки. Я сделал небольшое форматирование, чтобы расположить ссылки в каждой комнате (как вы можете видеть на третьем рисунке), но оставил это минимальным.

Ключ к этому шагу - минимализм. Вам нужно будет периодически переделывать большую часть этого материала, чтобы вам не приходилось переделывать целую кучу работы. В общей сложности придерживайтесь менее 10 комнат, делайте описания комнат краткими, пока не делайте ничего красивого. Они только должны быть функциональными.

Как только вы заставите код работать, это может быть красиво.

Шаг 4: Добавьте Wumpus

Добавить Wumpus
Добавить Wumpus

Чтобы добавить нашего Wumpus, нам нужно создать отрывок StoryInit.

Этот проход уникален для SugarCube и запускается до того, как игрок увидит начальный проход. Он используется для настройки переменных и объектов, которые необходимо создать до начала игры. Очень важно, чтобы отрывок назывался "StoryInit", и он чувствителен к регистру.

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

Шаг 5: проверьте Wumpus

Проверьте Wumpus
Проверьте Wumpus

К каждой комнате мы добавляем "" оператор, который проверяет, находится ли Wumpus в текущей комнате. Если это так, он распечатает короткую строку. Если это не так, ничего не появляется.

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

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

Шаг 6: Тест

Тестовое задание
Тестовое задание
Тестовое задание
Тестовое задание

Мы тестируем наш код, проигрывая его. Конечно, мы можем видеть, где находится Wumpus в верхней части экрана. Если нас нет в этой комнате, значит «Wumpus здесь!» текст не появляется.

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

Шаг 7: Добавление общего кода комнаты

Добавление общего кода комнаты
Добавление общего кода комнаты
Добавление общего кода комнаты
Добавление общего кода комнаты

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

Сделайте отрывок и назовите его чем-нибудь особенным. Я просто называю свою "комнату", все строчными буквами. Вы можете использовать специальные символы или все заглавные буквы, чтобы сделать свое уникальное и не похожее ни на одно из ваших настоящих названий комнат.

Мы скопируем и вставим наш оператор "" в этот общий код комнаты. Затем в каждой из ваших настоящих комнат используйте выражение «». Это буквально скопирует и вставит содержимое нашего прохода "комнаты" в эту часть каждой комнаты. Таким образом, мы можем позволить машине обрабатывать утомительные биты, а мы сосредоточимся на коде!

Вы можете узнать больше о "" и других операторах на странице документации Sugarcube 2.

Шаг 8: Тест

Тестовое задание
Тестовое задание
Тестовое задание
Тестовое задание

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

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

Шаг 9: Почему появляются пустые строки?

Почему есть пустые строки?
Почему есть пустые строки?
Почему есть пустые строки?
Почему есть пустые строки?

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

Код в Twine смешивается с обычным текстом. Угловые скобки (эти штуки:) говорят Twine, что это код, а не текст. Позвольте мне проиллюстрировать проблему с этим. Допустим, у вас есть следующий код:

<> Обычный текст, появляющийся в игре… <> Еще текст игры…

Многие текстовые процессоры имеют параметр, позволяющий просматривать символы пробела; такие вещи, как пробелы, табуляции и разрывы строк. Twine нет, но если бы это было так, это выглядело бы примерно так:

Нормальный˙текст˙ появляется˙в˙игре… ¶ ¶ Больше˙игровой˙текст…

Видите эти знаки абзаца? (¶) Это не в угловых скобках. Это означает, что Twine считает их обычным текстом и вставляет их в вашу игру. Вот почему, когда вы играете в игру, она выглядит так:

Обычный текст в игре…

Еще текст игры…

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

Обычный … текст

Это будет выглядеть так, как вы ожидаете в своей игре:

Обычный текст в игре…

Еще текст игры…

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

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

Во-вторых, обратная косая черта () отличается от прямой косой черты (/), и вам нужно быть осторожным с тем, какой из них вы используете и где, потому что они делают разные вещи.

Шаг 10: Тест

Тестовое задание
Тестовое задание

Ваш тест должен показать, что вы устранили ошибочное пустое пространство! Великолепный!

Шаг 11. На этом все

На данный момент все
На данный момент все

Это все время, которое у меня есть на данный момент. Пока что все довольно просто Twine. Общий код комнаты - это полезный трюк, позволяющий сократить количество операций копирования и вставки, которые вам нужно делать, и эти обратные косые черты абсолютно необходимы, чтобы ваши отрывки выглядели чистыми, а ваш код читался.

Все будет быстро взлетать отсюда!

Хорошей охоты!

Рекомендуемые: