Диалекты бейсика для ZX Spectrum 1992 г.

Megabasic - Атрибуты.


АТРИБУТЫ_

INVERT, FADE, SWAP, CHANGE

С одним из операторов, работающих с атрибутами экрана, мы уже встретились в предыдущем разделе. Это оператор CLW, который позволяет очищать окно с заменой атрибутов. Похожие действия выполняют и некоторые другие операторы, предусматривающие, наряду с выполнением своей основной функции, модификацию атрибутов: SCROLL, PAN, GET, PUT. Эти операторы будут рассмотрены в тех разделах описания, где речь пойдет об их основном назначении. Сейчас же остановимся на операторах MegaBasic, занимающихся исключительно обработкой атрибутов: INVERT, FADE, CHANGE и SWAP. Сразу отметим, что действие всех перечисленных операторов распространяется на весь экран, то есть они игнорируют деление экрана на окна.

INVERT

инвертирует изображение на экране, заменяя цвет фона на цвет тона и наоборот. Используется без параметров.

Применение оператора

FADE_a

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

Рабочее значение параметра а может находиться в пределах от 0 до 255, но оператор FADE «проглатывает» и любые другие числа, реагируя при этом только на остаток от их деления на 256.

Операторы CHANGE_a1 ,а2 и SWAP_a2,a1

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

Оператор

SWAP_M,»2

служит для замены атрибута а2 атрибутом а1: находит на экране знакоместа с атрибутами, равными значению.параметра «2, и устанавливает в них новые атрибуты, соответствующие значению параметра al. Скажем, SWAP_BIN 00000001.BIN 1000000172 включит FLASH в тех знакоместах экрана, в которых изображение состоит из синих точек на черном фоне.

Оператор

CHANGE_a1,a2

производит поиск и замену сразу нескольких атрибутов. Работает CHANGE следующим, довольно нетривиальным, образом. Он изменяет по всему экрану те биты атрибутов, которые не совпадают в параметрах а1 и а2. Так, если воспользоваться теми же значениями параметров, что и в приведенном выше примере с оператором SWAP, то есть выполнить CHANGE_BIN 00000001.BIN 10000001, то FLASH включится по всему экрану. Зато если потребуется, к примеру, перекрасить желтым цветом все, что изображено синим, красным или фиолетовым, независимо от фона, то эту задачу можно решить, введя CHANGE_BIN 00000011,BIN 00000110. Из операторов SWAP пришлось бы в этом случае составлять длинную цепочку, учитывающую все варианты фона.




СОДЕРЖАНИЕ:
  1. Laser Basic - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - Имеются в продаже черно-белые электронно-лучевые трубки 31ЛМ10Б-2.
Юмор - Анекдоты, приколы, афоризмы...
И снова party - новости пати в подмосковье: Paradigmuz 2003
Ликбез - полное описание и полный дизассемблер ПЗУ (часть 6).
Обмен опытом - Game Making 2: всевозможные методы вывода спрайтов (по мотивам игры Full Shit).

В этот день...   21 ноября