Программирование на Бейсик 48/128 для ZX-Spectrum 1993 г.

SPECTRUM-бейсик - раскраска изображений. Цветовые эффекты. Постоянные и временные атрибуты экрана.


ЦВЕТ

Раскраска изображений

paper, ink, border

Spectrum-Бейсик позволяет раскрашивать экран монитора с
использованием восьми цветов: черного, синего, красного, фиоле-
тового, зеленого, голубого, желтого и белого.

Изображение на экране строится из сочетания включенных и
выключенных пикселей, причем как одни, так и другие Spectrum-
Бейсик позволяет окрашивать в различные цвета. Цвет выключен-
ных пикселей называется цветом фона, включенных — цветом
тона. Следовательно, цвет фона — это цвет «пустого» (без изобра-
жения) экрана, цвет тона — цвет окраски символов или гра-
фических объектов, выводимых на экран.

Задаются цвета фона и то-
на, соответственно, операто-
рами PAPER (бумага, англ.) и
INK (чернила). После каждого
из них ставится параметр —
код требуемого цвета:

0 - черный,

1 - синий,

2 - красный,

3 — фиолетовый,

4 - зеленый,

• 5 - голубой,

6 — желтый,

7 - белый.

Например, после выполнения оператора
PAPER 6

знакоместа, в которые осуществляется вывод символов или гра-
фики, будут окрашиваться в желтый цвет.

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

После окраски основного экрана становится четко виден бордюр

— поле по краям экрана. Бордюр тоже можно окрасить в один из
восьми цветов. Делается это с помощью оператора BORDER. Выпол-
ним:

BORDER 6

— и бордюр (так же, как и весь экран) станет желтым.
После задания цвета тона, например, оператором

INK 1

все выводимое на экран изображение — символы ли, графика ли

— все будет окрашиваться в синий цвет. Попробуем:

PRINT "ZX Spectrum"
CIRCLE 127, 87, 50

На экране синим по желтому будет напечатано ZX Spectrum и
начерчена окружность (по желтому в том случае, если до этого
выполнялся предыдущий пример).

Цветовые эффекты

BRIGHT, INVERSE, FLASH, OVER

Изображение на экране Speccy может быть не только раскраше-
но, но и иметь две градации яркости: нормальную и повышенную
(оператор BRIGHT). Кроме того, оно может выводиться с инверсией:
цвет фона меняется на цвет тона, а цвет тона на цвет фона (INVERSE),
или сделано мерцающим: с меняющимися через определенный про-
межуток времени цветами тона и фона (FLASH). Все перечисленные
операторы используются с одним параметром, принимающим зна-
чение либо 1 — включение режима, либо 0 — выключение.

Это элементарно, но на пальцах не объяснишь. Лучше выпол-
нить операторы BRIGHT 1, FLASH 1, INVERSE 1 и попробовать выво-
дить на экран текст, задавая различные значения цветов тона и
фона.

Обычно, если на экран помещается новое изображение, на-
пример, в знакоместо впечатывается символ, прежнее изображе-
ние стирается. Но в Spectrum-Бейсике имеется оператор OVER ,
после выполнения которого компьютер переходит в режим, позво-
ляющий накладывать «новое» изображение на «старое». При этом
точки, в которых изображения совпадают, принимают цвет фона.
Включение и выключение режима наложения, как и режимов

инверсии и мерцания, задаются, соответственно, значениями 1 и
О, ставящимися после OVER.

Кроме упомянутых значений, указываемых после ключевых
слов PAPER, INK (0...7) и BRIGHT, INVERSE, FLASH (0 и 1), может исполь-
зоваться число 8, называемое параметром прозрачности. Напри-
мер, после выполнения последовательности PAPER 8, INK 8, BRIGHT 8,
INVERSE 8 и FLASH 8 оператор

PRINT AT 10,10;"*"

впечатает звездочку (*) в 10-й столбец 10-й строки в цветах, ранее
установленных для этого знакоместа. Если, скажем, в этом знако-
месте размещался мерцающий символ (FLASH 1) синего цвета
(INK 1) на желтом фоне (PAPER 6) с повышенной яркостью (BRIGHT 1),
то и звездочка будет выведена в этих же цветах.

После PAPER и INK может стоять также параметр 9. INK 9 предо-
ставляет компьютеру самостоятельно выбрать цвет тона, который
контрастен цвету фона: черным по светлому фону (зеленому,
голубому, желтому и белому) или белым по темному (черному,
красному, синему и фиолетовому). Таким же образом действует
PAPER 9, устанавливая цвет фона контрастным цвету тона.

Постоянные и временные атрибуты экрана_

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

До сих пор мы использовали ключевые слова PAPER, INK, BRIGHT
и FLASH как самостоятельные операторы. Их действие распростра-
нялось на весь экран и длилось до того момента, пока эти операто-
ры не выполнялись с новыми параметрами. То есть мы работали с
постоянными атрибутами экрана.

Однако часто бывает необходимо напечатать каким-либо цветом
лишь одно слово или символ, не влияя на окраску последующих,
то есть не меняя значения постоянных атрибутов. Сделать это
можно, используя ключевые слова, управляющие цветом, в качест-
ве параметров оператора PRINT.

Записываются они так же, как и AT и TAB — в произвольном
месте данных, предназначенных для вывода на экран, отделяясь от
них точками с запятой. К примеру, после выполнения строки

PRINT "*"; INK 4; "*"; PAPER 5; "*"

на экране появятся три звездочки. Цвета фона и тона первой из
них будет соответствовать ранее определенным постоянным атри-
бутам (если они не были специально заданы, то звездочка будет
напечатана черным по белому, то есть цветами, устанавливаемыми
компьютером сразу после включения питания). Вторая звездочка
окрасится в зеленый тон, но с тем же фоном. Третья пропечатается
зеленым по голубому. Установленные в строке временные атрибу-
ты, в данном случае цвета тона и фона, действуют только до конца

PRINT или до появления в строке новых параметров. Если после
этого мы вновь зададим PRINT без параметров (PRINT "*"), то убедим-
ся, что временные атрибуты никак не повлияли на постоянные.

Ключевые слова INVERSE и OVER тоже могут использоваться в
операторе PRINT, переключая режим инверсии и совмещения лишь
на время его работы.

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

PLOT 32, 80
DRAW 32, 0
DRAW INK 4; 32, 0
DRAW 32, 0

В результате выполнения этих операторов на экране высветятся
три отрезка. Крайние будут окрашены в постоянный цвет тона
(черный по умолчанию). Средний — в соответствии с временным
параметром INK — в зеленый.

Но не все так радужно в королевстве цветной графики
ZX Spectrum. Проведем по экрану две диагонали: красную и си-
нюю. Чего проще:

PLOT 0, 0

DRAW INK 2; 255, 175
PLOT 255, 0

DRAW INK 1; -255; 175

Посмотрев же на экран, замечаем не очень приятный эффект: в
районе точки пересечения первая проведенная диагональ (крас-
ная) перекрасилась в синий цвет.

Происходит это из-за того, что атрибуты экрана (цвета фона и
тона, яркость и мерцание) в ZX Spectrum устанавливаются не для
каждой точки, а целиком для знакоместа — одинаковые атрибуты
для каждой из 64 его точек (8x8). И, естественно, если через
знакоместо проведена линия с новым цветом тона, то все ранее
установленные точки в этом знакоместе перекрасятся. Эта особен-
ность компьютера накладывает ограничения на разнообразие ок-
раски изображения: в пределах одного знакоместа невозможно
использовать более двух цветов.

Операторы INVERSE и OVER также можно использовать и в каче-
стве параметров графических операторов. Операторы с INVERSE 1
будут честно ставить точки или прочерчивать линии цветом фона,
с OVER 1 на фоне будут рисовать тоном и, наоборот, на тоне фоном.
Операторы, в которых одновременно размещены и INVERSE 1, и
OVER 1, не будут менять изображение на экране.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Вступление - содержание номера.
Не пил я пива много лет - наша неоконченная ода Пиву!
Интерфейс - письма читателей: Новая версия Worms, доработка QUILL, о необходимости статей о создании игр, Poke к изветным играм, о глюках в программах и т.д.
Развлечения - Двое в гамаке.
Приложение - две адвентюрные игрушки.

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