Волшебная пещера – это небольшое текстовое приключение с ВСЕГО ОДНОЙ ГОЛОВОЛОМКОЙ, созданное в качестве дополнения к готовящемуся видео на YouTube (о том, как создать эту простую игру).
Графика локации имеет размер 128 x 40 пикселей, а титульный экран – 128 x 96 пикселей.
Эта игра написана с использованием ADVENTURON, доступного на www.adventuron.io
ADVENTURON поддерживает автозавершение кода с помощью клавиш CONTROL + ПРОБЕЛ или ALT + ПРОБЕЛ (в зависимости от ОС).
Для работы редактора требуется НАСТОЛЬНЫЙ ПК, но игры, созданные с помощью adventuron, можно будет запускать и на мобильных платформах.
Пожалуйста, не жалуйтесь на то, что игра короткая. Цель состоит в том, чтобы предоставить минималистскую демонстрацию того, как реализовать головоломки/разметку и мультимедийные функции с минимальным исходным кодом.
Игра/графика Криса Эйнсли.
Исходный код этой игры (без графики) показан ниже (спойлеры для одной головоломки):
start_at = берег озера
местоположения {
forest : location "Вы находитесь на лесной тропинке.\nВысокие <ДЕРЕВА<4>> возвышаются над вами с обеих сторон." ;
external_cave : location "Вы стоите снаружи <ВОЛШЕБНОЙ ПЕЩЕРЫ<5>>" ;
inside_cave : location "Вы находитесь внутри <ВОЛШЕБНОЙ ПЕЩЕРЫ<5>>" ;
Lakeside : location "Вы находитесь на берегу <КРАСИВОГО ОЗЕРА<2>>." ;
}
объекты {
тролль : декорации "огромный тролль" start_at = "outside_cave" ;
sleep_troll : декорация "огромный тролль (спящий)" ;
яблоко: объект "яблоко" ;
сокровище : объект "куча сокровищ" start_at = "inside_cave" ;
}
связи {
откуда, направление, куда = [
берег озера, север, лес,
лес, север, внешняя_пещера,
внешняя_пещера, север, внутренняя_пещера,
]
}
на старте {
//: print_graphic "outside_cave" ;
: print "^c^ВОЛШЕБНАЯ ПЕЩЕРА ЖДЕТ ВАС" ;
: звуковой сигнал миллис = "100" шаг = "0" ;
: звуковой сигнал миллис = "100" шаг = "2" ;
: звуковой сигнал миллис = "100" шаг = "4" ;
: звуковой сигнал миллис = "100" шаг = "6" ;
: Нажмите любую кнопку ;
: звуковой сигнал миллис = "100" шаг = "6" ;
: звуковой сигнал миллис = "100" шаг = "4" ;
: звуковой сигнал миллис = "100" шаг = "2" ;
: звуковой сигнал миллис = "100" шаг = "0" ;
}
барьеры {
block_cave : блок {
местоположение = внутренняя_пещера
message = ТРОЛЛЬ ОХРАНЯЕТ ПЕЩЕРУ.
block_when_exists = тролль
show_blocked_exit = истина
}
}
по команде {
: match "сорви яблоко; возьми яблоко" {
: if (is_at "лес" && has_not_created "яблоко") {
: создать "яблоко" ;
: переописать;
}
}
: match "изучать деревья" {
: если (is_at "лес") {
: print "Яблони." ;
}
}
: match "изучить тролля;поговорить с троллем" {
: print "<\"Я так голоден\"<3>>, говорит огромный ТРОЛЛЬ самым низким голосом." ;
}
: match "дай яблоко" {
: если (есть_присутствует "тролль" &&is_carried "яблоко") {
: print "Тролль с жадностью выхватывает у вас яблоко. К сожалению (для тролля), яблоко является <ЗАЧАРОВАННЫМ ЯБЛОКОМ<12>> и отправляет тролля прямо в сон." ;
: уничтожить "яблоко" ;
: swap o1 = "тролль" o2 = "спящий_тролль" ;
: Нажмите любую кнопку ;
: переописать;
}
}
: match "есть яблоко" {
: если (есть_присутствует "яблоко") {
: print "К сожалению, яблоко было <ЗАЧАРОВАННЫМ ЯБЛОКОМ<12>>, и теперь вы заснете - навсегда." ;
: print "^r^
>" ;
: end_game ;
}
}
}
on_tick {
: если (есть_присутствует "тролль") {
: звуковой сигнал миллис = "100" шаг = "-2" ;
: звуковой сигнал миллис = "100" шаг = "-4" ;
: звуковой сигнал миллис = "300" шаг = "-8" ;
: print "Тролль говорит: <\"МОЯ ПЕЩЕРА, УЙДИ\"<2>>." ;
}
: если (есть_в "внутри_пещеры") {
: звуковой сигнал миллис = "200" шаг = "0" ;
: звуковой сигнал миллис = "400" шаг = "10" ;
: напечатать "^r^ПОЗДРАВЛЯЕМ!" ;
: print "^r^ТЫ ВЫИГРАЛ ИГРУ!" ;
: print "^r^ВАШ РЕЙТИНГ: МЛАДШИЙ ИСПОЛНИТЕЛЬ!" ;
: Нажмите любую кнопку ;
: очисти экран;
//: print_graphic "логотип" ;
: print "Это крошечное приключение было написано с помощью Adventuron." ;
: print "Adventuron — это бесплатный текстовый язык для создания приключений и система разработки." ;
: print "Посетите веб-сайт исоздай свой собственный мир." ;
: print "^r^>" ;
: end_game ;
}
}