Техника - молодёжи 1994-10, страница 49

Техника - молодёжи 1994-10, страница 49

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

Совсем другое дело — движение на произвольном, сколь у одно сложном фоне. Вот например, обыденна игровая ситуация. Холл, над лифтами надписи PLAY (игра), EDIT (редактирование игры), EXIT (выход). Герою предстоит перебегать от одно го лифта к друг му нажимать кнопку вызо ва, входить в кабины и выходить из них. Фон достаточно разнообразен. Как организуется анимация?

В отличие от прежних случаев, программа должн прежде всего запоминать фон, чтобы он возобновлялся в первозданном виде после прохода спраи ов Он размеща-

ПОЛЕ ЧУДЕС. Л.Якубович хорош и без маски. Причина проста: ведущему не надо перемещаться по игровому полю, его выразительное лицо все время остается ) одном и том же зеленом квадратике.

STACK UP Как и во многих других аналогах игры Tetris спраиты падают на черном фоне стакана — им тоже не нужна маска.

ется в одной зоне памяти, спрайты — в другой, а комплексное изображение строится или сразу на экране, или в промежуточном буфере. Но это, как говорится, детали. Главное — от программы требуется умение определять, когда черпать информацию для

построения совмещенного образа из фона, а когда — иэ спрайта.

Здесь тоже мыслимы разные способы, но наиболее употребительный пришел опять таки из кино. На сей раз не из мультипликации, а из практики комбинированных съемок: сначала снимают объект на черном фоне, затем его силуэт используют в качестве подвижной (блуждающей) маски, закрываю щей часть кадра при съемке нужного фона

Компьютерные аниматоры поступают

SOKO-BAN. Лифтовый холл и серия маскированных спрайтов для перемещения пер сонажа игры.

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

Во можно, метод маски — чисто кинематографический — и не самый оптимальный. Главный, и довольно ущественный недостаток — удвоение объема спрайтов Есть конечно, и другие пути. Почему, скажем, спрайту обязательно быть прямоугольным'' Нетрудно предста ить его и в виде совокупности линий развертки разной длины, в начале каждой иэ которых один или несколько байтов отведены под информацию о том, куда в относительных координатах кадра помещать последующие. Получится гораз до рациональнее...

Но, с дру ои стороны, маску нетрудно, во первых, сделать компактнее: за цвет точки,

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

Как бы то ни было, метод блуждающей маски используют практически все. Не последнюю роль, очевидно, играет "человеческий фактор": компьютерной анимацией занима-

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

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

В заключение для любителей программи рования: фрагмент в кодах процессора Z80, реалиэующии построение совмещенного образа.

Id a, (HL)

FD А6 00

and (IY)

DD В6 00

or (IX)

12

Id (DE), a

23

inc HL

FD23

inc IY

DD 23

inclX

13

inc DE

В регистровых парах HL, IX, IY и DE размещаются соответственно адреса маски, самого спрайта, фона и буфера, в котором строится совмещенное изображение. Если маска располагается в памяти по соседству со "своим" спрайтом, то можно обойтись и тремя р гистровыми парами, а если к тому же результат вписывается непосредственно в фон - всего двумя. Установленные биты маски соответствуют фону, снятые -спрайту. На полях спрайта биты сняты. Про цедуру надо циклически повторить сначала по ширине спрайта затем по его высоте. Как видим, проще простого. ■

Михаил ПУХОВ

Техника-молодежи 1 0 ' 9 4

47