«- А хотите, я его стукну? Он станет фиолетовым! В крапинку!«
К вопросу о Призраке и его цветах. Вот так выглядят его спрайты:
Причем в памяти хранится только один вариант спрайта — красный. Он же и является маской при наложении спрайта на задний план. Остальные варианты генерятся программно, по мере надобности, путем BIC по маске (то все строки, то через одну) из этого же красного спрайта. Так как Призрак меняет цвет только после получения удара, то новый вариант спрайта генерируется не каждый раз при выводе на экран, а только после получения удара и дальше просто хранится в памяти.
Работа Призрака восстановлена. Причем, теперь он меняет цвет по мере получения урона от Балбеса, как и положено. Итого 5 разных вариантов цвета у этого персонажа. Игрушку удалось сделать более цветной, чем я думал 🙂
Доделал 5 уровень, теперь там все расставлено — нечисть, предметы, секреты. Теперь нужно сделать процесс «взятия» этих предметов и секретов работающим — чтобы в нижней части экрана выводились все взятые предметы, исчезали истраченные. А самое главное, надо чтобы сами артефакты теперь работали, выполняли свои функции.
Перед этой глобальной задачей я решил починить Призрака, который поломался не так давно. Обнаружилось, что сломался он частично из-за ошибки в константе (1000000 вместо 100000), а частично потому что вывод Шерифов был переделан. При этом Призрак в оригинале помирает только от 5 ударов, с каждым полученным ударом меняя цвет. Появилась у меня идея, как реализовать эту смену 5 цветов для спрайта Призрака.
В процессе раскрашивания этого самого Призрака я получил цвет, который вполне подошел бы Вопящему Шерифу, который у меня использует те же спрайты, что и Второй Шериф. Стал я смотреть, есть ли место под еще один набор спрайтов… и обнаружил, что при стрельбе у меня Шерифы используют один спрайт из заготовленных четырех — я умудрился так подобрать смещения в анимации, что остальные три (они просто смещены на один пиксель) оказались не нужны. Выкинул я эти спрайты из всех Шерифов и из масок тоже и освободилось место как раз на еще один набор спрайтов.
Итак, Вопящий Шериф теперь обзавелся своим цветом. А Призраком займусь завтра 🙂
Четвертый уровень готов, занимаюсь пятым, финальным. Как оказалось, я не совсем правильно понял из книжки смысл некоторых секретов. Проверяя на эмуляторе оригинал игры мне не удавалось их получить, пока я не выяснил, что в некоторых случаях надо не бить кулаком по летящим костям и нотам, а наоборот, получить от них урон! Вот жеж маньячество.
Четвертый уровень почти готов. На него ушло больше времени, потому что в нем водопады превращаются в кровавые реки, я об этом подзабыл. А также, тут впервые появляется новый тип обстановки — что-то типа золотой локации. Пришлось под все это дело немного поправить код. К тому же, тут «море огней», как выяснилось, так что пришлось увеличить массив под «огнеметные установки». Плюс хитрый флаг на Призрака, который совмещен с ключом…. Но все было успешно решено:
Да, еще нашлась разновидность скелета, которая не желает прыгать в пропасть. И не зря — в 4-м уровне есть места, где скелеты торчат на скалах и кидаются оттуда костями в проползающего по веревке Балбеса. А имеющиеся скелеты радостно попрыгали вниз с этих скал, плевать они хотели на местные должностные обязанности. Надо будет провести разъяснительную работу.
Нечисть расставлена, секреты запрятаны, триггеры взведены. Почему-то поломался Призрак — появился, но сразу все повесил. И скелеты распрыгались, как детишки на лужайке:
Подзабыл я, однако, как много времени отнимает система телепортов — все их связать между собой, настроить параметры каждого… Весь день на это ушел, да еще и ошибки обнаружились дурацкие. Но теперь по 3-му лабиринту уже можно перемещаться. Завтра буду его заселять и нашпиговывать секретами. Один там есть нестандартный, зависящий от нечисти. Надо думать, как его реализовать. Вот жеж японцы выдумщики…
Пришлось все-таки вносить изменения в систему секретов. Оказалось, что некоторые случаи требуют именно ВЗЯТЬ ключ, а не просто пройти мимо ключа. Если у Балбеса на этот момент уже будет ключ — он не сможет взять второй, а значит секрет не должен сработать. Пришлось немного переделать систему флагов и в таблице флагов появились ссылки на другие флаги в этой же таблице флагов 🙂 Но все успешно заработало:
Свежие комментарии