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

Спектрум Бейсик - Графика; Цвет; Раскраска изображений; Цветовые эффекты; Постоянные и временные атрибуты экрана.


ЦВЕТ

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

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, не будут менять изображение на экране.




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


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

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



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

Похожие статьи:
Rants & Raves - Цифра "7" - моя любимая цифра.
Тема - Беседа с одним из организаторов FunTop'98 и редактором газеты Nicron - Wlodek Black'ом из Москвы.
Обзор - новые игры Elite III, 1-St Devision Manager и анонс игры "Звездное наследие".

В этот день...   22 мая