Обсуждая диззи-темы на специализированном форуме, коснулись некоторых моментов, которые, возможно, будут интересны zxpk-форумчанам.
Многих с детства мучил вопрос, почему скелет под мостом отодвигается реагируя на некоторые предметы? Нет ли в этом тайного замысла Оливеров? Может быть недореализованный секретный ход?
Так вот я открою эту тайну...
Отодвигающися скелет это... баг! )
На самом деле, все активные обьекты в игре, такие как скелеты, платформы, кости и т.д. - являются обьектами одного класса под именем GeneralMovingObject. Т.е. универсальный перемещаеющийся обьект. Не исключением является разрушающийся мост. Это просто платформа сделанная из зеленого облака, которая при достижении некоего невидимого триггера, стремительно сдвигается вправо и останавливается аккурат по XOR на правой части моста, полностью убирая ее с экрана.
Платформой же является и наш возлежащий в низине скелет. Но, по некоему программистскому недоразумению, он имел неосторожность получить индекс в списке обьектов номер #00.
А все активные предметы, которые не имеют четкого таргетирования (т.е. обьекта с заданным номером, к которому их надо применять), ссылаются на обьект с индексом #00. А это и есть наш скелет. Таким образом, каждая коллизия скелета с таким предметом активирует в нем механизм смещения платформы (а у него этот механизм настроен вправо), и скелет благополучно едет. Но тут же останалвивается, так как упирается в указанные в его же настройках границы перемещения, которые двигаться ему никуда не разрешают. Словом, коллизия с предметом, активация движения, и остановка движения из-за превышения границ. Вот и весь секрет скелета...
И магнит ни на что не действует. Впрочем, вы можете бросить его в скелет и получить 1000 очков)
Кстати, если бросать предметы во всякие ямы с костями, они благополучно будут проваливаться сквозь них и падать на экран ниже.
Замечу, что игра изобилует милыми багами. Некоторые видимые только для программистов, но некоторые и для пользователей.
Например, все замечали, что цвет названия предметов синий. Ну, как-то это смотрится не очень. Темновато. А на ч/б мониторе и того хуже. Исходя из палитры игры, хочется раскрасить ее что ли в фиолетовый цвет. Смотрим в код. А именно фиолетовый цвет у ней в коде и есть. Только печать цвета идет по XOR, таким образом цвет фона красный ($42) xor фиолетовый ($03) дает нам синий ($41).
Ну, всякие работающие во время игры ПЗУ-шные прерывания с системным опросом клавиатуры - это мелочи жизни. А так же куски неиспользуемого кода от Амстрада, а так же просто ненужные фрагменты кода, данных - это все имеется в ассортименте.
Да, в игре есть никогда не используемая графика. Третий тип веток, чаша для факела, и тонкое пламя для факела. Толстое же пламя превратили в акулий плавник, в связи с чем он весьма благополучно плавает во рву с водой.
Идем далее. Весьма забавный баг, с которым, очевидно, сталкивались те, кто любят Sinclair Joystick 2. Нажимаем 9 (вверх), игра стартует. Играем, играем, и тут бац, управление почему-то переключилось на Cursor Joystick. Вот это поворот! А связано это с тем, что во время проигрывания любой музыки (даже музыки смерти и музыки начала игры) идет опрос выбора управления. Таким образом, если во время милого проигрыша вы нажмете 8, игра поймет, что вы выбрали Cursor, и далее вам придется играть именно на нем.
Так же весьма интересно художник (а по словам некоторых статей, это были сами Оливеры) рисовал Диззи. Что не кадр, то разный Диззи) Ну, художник так видит)
Скрытый текст
[свернуть]
С такой же вариативностью, но с некоторой шлифовкой Диззи перекочевал во все последующие части, обзаведясь заодно и маской.
Знаете ли также вы, что дрова, которые горят под котлом, на самом деле должны выглядеть совершенно иначе, нежели мы их видим в игре? Они печатаются по XOR поверх земли, таким образом полностью теряя свои изначальный вид, задуманный художником:
Скрытый текст
[свернуть]
Продолжаем расследывать тайные глюки игры.
Физика предметов устроена так, что они могут, как проваливаться на экран ниже, так и вытесняться твердыми поверхностями вверх. Однако, при вытеснении вверх, они не умеют попадать на экран выше. Такой ситуации в принципе не предусмотрено, т.к. в игре не должно встретиться вообще. А мы ее с вами получим.
Идем на экран с амулетом, берем амулет, прыгаем на лифт и встаем посередине одной из веревок. Выкладываем предмет, и встаем на лифте ровно. Как только лифт доедет до верху, предмет попадет в зону действия твердой сосульки и вытеснится на рамку экрана. Бинго!
Впрочем, та же ситуация пройдет и с выкладыванием предмета на нитку лифта экрана с ключом. Чтобы уж далеко не ходить.
Скрытый текст
[свернуть]
О Заксе:
1. А знаете ли вы, что снежинки, которые испускает Закс (в количестве двух штук) имеют разные свойства?
Они обе уничтожаются, если Диззи несет амулет.
Однако, если амулет выложить, то верхняя снежинка просто замирает на месте, натыкаясь на амулет.
А нижняя снежинка уничтожается об амулет со взрывом, как это делают прочие пауки, сосульки и яблоки.
2. Если при убивании Закса вы подойдете слишком близко к нему, то когда вы примените колбу с зельем, то вы убьетесь, потому что на месте Закса активируется скроллирующийся вниз прямоугольник, а он во-первых, всегда убивает Диззи (вода в игре сделана по этому принципу), а во-вторых, имеет зону действия несколько шире, чем свои собственные размеры.
3. Когда Закс побежден, в игре включается счетчик на 205 позиций, предполагая, что за это время успеет пробежать вся бегущая строка с финальным текстом. Однако, если выйти с экрана и побегать по другим экранам, этот счетчик все равно будет идти, и игра закончится по его истечении, а вовсе не тогда, когда бегущая строка финального сообщения добежит до конца.
Еще из интересненького.
Похоже, было предусмотрено, что когда под котлом нет огня, колба на котле не прыгает. А когда огонь есть, соответственно, прыгает.