Уроки Красной Логики Minecraft. Урок нулевой: Основы (#5854)
Уроки Красной Логики Minecraft. Урок нулевой: Основы
Давайте-ка займёмся делом. И не абы каким, а достаточно сложным, интересным и… ну… в меру забавным, пожалуй, открывающим игру с нового ракурса. Вы же ведь не думали, что Minecraft – это только «топором махай – древесину собирай»? Кто сказал «а разве не так»? *показывает пальцем на человека* Вы? Дорогой мой, копайте дальше, мы вам мешать не будем. Всем остальным – добро пожаловать под кат.
Часть нулевая. Вступление.
Разговор сегодня (да и не только сегодня) пойдёт про тот таинственный Redstone (далее – «редстоун», может звучит не настолько красиво, зато писать проще), который многие из вас надыбали в своих многочисленных пещерных рейдах. Может кто-то даже «сажал» этот редстоун на пол, потом ходил вокруг него минуты две, так и не придумав ему применение. Кто-то, вероятно, даже залез в Интернет и прочитал, что на самом деле это очень круто, посмотрел видео с YouTube’а, проникся идеей и… потом начинался раздел с какими-то огромными схемами, непонятными словами, нулями, единицами… Бррр…
Вот для тех, кто понял, что это круто, но не понял, как cделать, чтоб всё это действительно было круто, и предназначен мой импровизированный учебник. Я разобью его на уроки, и сначала, как в любом учебнике, вам придётся потерпеть всевозможные определения и примитивные схемы. Однако потом (и я вам это обещаю) мы займёмся более серьёзными и сложными механизмами. Возможно, кому-то будет достаточно и этого урока, и всё станет чётко и ясно. Что ж, для этого и всё пишется. Буду этому несказанно рад. =)
Так. Вроде ничего не забыл. Поехали!
Часть первая. Картинки.
Начнём с простого – с картинок. Да-да, с картинок. Я вам покажу те элементы цепей редстоуна (того, что мы в будущем построим), которые будут нами использоваться.
Самый главный элемент – красный песок (Redstone Dust), он же провод (Redstone Wire). В цепях он играет роль соединительных проводов. Для прокладки провода надо просто нажать на полу правой кнопкой мыши. Кладётся только на верхушки блоков.
Красный факел (Redstone Torch). Тоже играет огромную роль в цепях редстоуна. Применяется как питающий элемент, как индикатор, а также в схемах инверторов (об этом позже).
Факел, как источник сигнала, всегда подаёт в цепь «1». Следующие элементы являются переключателями и подают единицу, когда включены / нажаты.
Рубильник / Переключатель (Lever) – во включённом состоянии подаёт в присоединённый к нему провод единицу. В выключенном, соответственно – «ноль».
Кнопка (Button) – цепляется только на стену. После нажатия подаёт сигнал длительностью 0.9 секунды, потом возвращается в ненажатое состояние.
Каменная и деревянная напольные кнопки (Stone / Wood Pressure Plates) – в отличие от простой кнопки, напольные (не поверите!) крепятся только на пол и срабатывают, когда на них встают. После того, как вы её покинете, сигнал перестанет подаваться. Разница между кнопками есть и существенная, но на первых порах она нам не пригодится, поэтому не будем забивать этим голову.Собственно, для этого урока нам будет достаточно этих элементов. Приступим к теории, наименее приятной части сегодняшнего урока…
Часть вторая. Дискретная математика.
Это у кого это так сильно замкнуло челюсть от этого словосочетания, что аж здесь слышен скрежет зубов? А-а-а, я полагаю, вы вспомнили огромные формулы и доказательства из этой науки. Не-е-ет, тут этого нет, тут всё будет проще. В разы проще.
Для понимания основ работы цепей редстоуна надо хотя бы иметь представление, что в них (цепях) происходит. Итак, каждый провод и элемент цепи может иметь два состояния – 0 или 1 («выкл» или «вкл» соответственно, хотя более часто используются определения «отрицательный» и «положительный»). В зависимости от состояния проводящие элементы либо будут ярко гореть, либо нет.
По левому проводу сейчас идёт сигнал, а правый обделён таким вниманием.
На правом факеле сейчас есть сигнал, а на левом – нет.
В цепях есть узлы, которые выполняют определённую функцию. Под «узлами» понимаются вышеописанные элементы, которые как-то влияют на сигнал: факелы, инверторы, генераторы синхросигналов и прочее. Они объединяются в большие узлы, которые выполняют более сложные функции. Что логично.
К чему же можно подсоединить провод, если в мире Minecraft нет ни одного электрического прибора? Ответ прост: к дверям, жидкостям (очень хитроумным способом, но можно), железнодорожным путям, диспенсерам и нотным блокам.
Всё. Мало и, я надеюсь, понятно. Давайте уже творить…
Часть третья. А как оно всё работает?
Элементарно. Берём в руки красный песочек и щёлкаем пару раз на полу. Должны получить что-то вроде этого:
Тот самый провод, по которому потом побежит сигнал. Его совершенно не обязательно класть идеально ровными линиями, вполне сгодится и такой вариант:
Всё, можно стирать (точнее, убирать провода, запомните это выражение на будущее). Теперь поставим источник сигнала. Берём в руки факел и втыкаем его в пол. Получаем вот это:
Сверху – обычный факел, снизу – факел, сотканный из редстоуна. Разница очевидна.
Теперь подключим факел к двери. Крафтим дверь, ставим и подтягиваем провод.
До того, как мы подключим провод к двери, она будет закрыта:
После соединения с факелом она откроется:
Круто, да? Нет? А, ну да, зачем же нам нужна постоянно открытая дверь… Хорошо. Убираем факел, ставим на его место рубильник, вот так:
Теперь мы можем управлять дверью, дёргая рычаг. Переключите его и насладитесь моментом открытия двери:
С рычагом очень легко заметить, что дверь открыта, когда провод горит ярко-красным («1», сигнал есть), и закрыта, когда провод чёрный («0», сигнала нет).
Следующий элемент нашего сегодняшнего дня – напольная кнопка. Устанавливаем её вместо рычага:
А теперь встаём на неё:
Вуаля! Дверь открылась. Открывать можно не только своим весом, но и другими предметами, например любым блоком, выброшенным из рук:
Для сомневающихся:
Блок нажал кнопку, всё по-честному.
Поставим теперь настенную кнопку:
Подойдём и нажмём. Отсчитаем 0.9 секунд и увидим, как дверь закроется.
А, собственно, чего это мы так тратим энергию? Давайте подключим две двери и обе будем открывать нажатием напольной кнопки:
И всё бы было прекрасно…
Часть четвёртая. Чисто было на бумаге…
…если бы сигнал по мере распространения по проводам не затухал. Как? Да вот так:
Примечание. В версиях до Beta 1.3, провода с сигналом всегда были красные. Теперь же цвет провода приближается к чёрному по мере удаления от источника.
Запомните простое Правило Пятнадцати: Сигнал распространяется только на 15 блоков от источника. Легко проверить:
Установленная на 16ом блоке дверь закрыта, значит сигнал на неё не поступает (напомню, что дверь открывается при сигнале «1»).
Как же тогда быть? Ограничиваться схемами на 15 блоков? Пфф… Это не наш метод. Научимся удлинять сигнал (по-умному будет звучать как-то в стиле «компенсировать затухание сигнала»).
Примечание. В данном уроке рассматривается старый способ компенсации затухания. После выхода Beta 1.3 был добавлен ещё один вариант, но мы рассмотрим его позже.
Стираем всё и прокладываем провод таким образом:
Как видно, на 16ом блоке сигнал «почернел». Теперь уберём провода с парочки блоков:
И на конце поставим вот такой вот агрегат:
В простонародье это именуется «инвертором». Он инвертирует сигнал, то есть из 0 делает 1, а из 1 делает 0.
Продолжим цепь, присоединив к выходу этого инвертора ещё один:
Пронумерую инверторы для удобства:
Принцип действия прост: наш сигнал, каким бы он ни был, приходит на первый инвертор, меняется на противоположный (0 → 1, 1 → 0), потом идёт до следующего инвертора, где меняется ещё раз, возвращая своё первоначальное значение. При этом в инверторах используются факелы, которые, я напомню, являются источниками сигнала. Таким образом, сигнал, поступив на второй инвертор и сменив свой знак (помните, я в самом начале говорил, что сигналы чаще зовутся «положительными» и «отрицательными»?) генерируются на факеле, начиная отсчёт злосчастных пятнадцати блоков по-новой.
Проверим действие нашей схемы. Для этого встанем на кнопку, подав тем самым положительный сигнал в цепь: