Как написать игру для ZX Spectrum на ассемблере


         

Перемещение спрайта скроллингом окна - часть 7


Пятый способ лучше всего начать с описания картинки, которую формирует приведенная нами программа, а не с особенностей метода, как мы это делали раньше. Дело в том, что здесь придется ввести некоторые новые понятия, такие, например, как маска, и, как говорится в таких случаях - «лучше один раз увидеть...» После запуска программы перед вами появится «морской» пейзаж, состоящий из синей поверхности воды, черного ночного неба, на котором, тем не менее, видны белые облака (скорее всего их освещает луна), а между водой и небом - живописные острова, вблизи которых медленно проплывает военный корабль. Особенность этого способа состоит в том, что изображение корабля закрывает остров только по контуру спрайта, который не обязательно будет обозначен прямыми линиями, проходящими по границам знакомест. Достигается это благодаря использованию маски, поэтому необходимо сказать несколько слов о том, что же это такое и как ее сделать.

Представим себе, что с помощью графического редактора вы создали какой-то спрайт, скажем, изобразили корабль (Рисунок  7.3, а). Затем, воспользовавшись функцией Cut & paste window, перенесите полученный спрайт немного правее и обведите его по контуру, закрасив всю внешнюю область и оставив зазор в один пиксель (Рисунок  7.3, б). Наконец, удалите все, что расположено внутри контура как показано на Рисунок  7.3, в. Так вот, то, что получилось на последнем рисунке, и есть маска для исходного спрайта «корабль».




Содержание  Назад  Вперед