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

Beta Basic - Графические операторы.


ГРАФИЧЕСКИЕ ОПЕРАТОРЫ_

DRAW ТО, FILL, FILLED(), ROLL, SCROLL

DRAW TO <x>,<y>[,<угловая величина>]

Такой модернизированный синтаксис оператора DRAW позволяет при построении отрезка или дуги использовать в качестве параметров не приращения координат относительно последней выведенной точки (как в Spectrum-Бейсике), а абсолютные координаты конечной точки. Так, инструкции PLOT 10,25: DRAW 30,40 и PLOT 10,25: DRAW ТО 40,65 выполнят одинаковые действия.

Смысл третьего параметра — угловой величины в радианах — остается таким же, как и для стандартной команды DRAW.

В Beta Basic все графические операторы приобретают новое полезное свойство: в качестве их параметров можно использовать не только физические координаты экрана (начало отсчета — левый нижний угол основного экрана, единица отсчета — один пиксель), но и математические координаты. То есть графические построения в Beta Basic можно делать в системе координат с произвольной единицей измерения (больше или меньше пикселя), которая определяется специальными переменными XRG и YRG. Начало отсчета математической системы координат задается другой парой переменных — XOS и YOS — и может быть расположено в любой точке экрана и даже за его пределами. Так, при XOS=XRG/2 и YOS=YRG/2 начало координат будет находиться в центре экрана, а при XRG<XOS<0 и YRG<YOS<0 — за его пределами. При старте Beta Basic переменные, задающие математическую систему координат, уже определены и имеют стандартные значения: XRG=256, YRG=176, XOS=0 и YOS=0.

Во всех последующих примерах программ, работающих с графикой, предполагается, что переменные XOS, YOS, XRG и YRG имеют стандартные значения.

Beta Basic восполняет существенный недостаток графики Spectrum-Бейсика — вводит операторы заливки замкнутых контуров.

FILL [ < список атрибутов >; ] < х >, < у >

Оператор FILL осуществляет заливку области экрана, ограниченной замкнутой линией. Задается эта область указанием координат любой точки внутри нее (параметры <х>,<у>). FILL присваивает знакоместам, «задетым» областью заливки, атрибуты, указанные в <списке атри6утов>. Заливка осуществляется цветом тона либо цветом фона в зависимости от того, какой из атрибутов — INK или PAPER — стоит первым в <списке атри6утов>. Попробуем набрать и выполнить программку:

10 CIRCLE 100,100,70

20 FILL INK 5; 100,100

и получим на экране голубой круг.

Заливка цветом фона (FILL PAPER) как ластиком стирает ранее нанесенную заливку цветом тона. Дополним программку строкой

30 PAUSE 0: FILL PAPER 4; 100,100

После нажатия на любую клавишу нарисованный круг перекрасится.

Если опустить у ключевых слов INK или PAPER стоящий после них параметр (код цвета), то закраска будет происходить текущими цветами тона или фона.

Оператор FILL без < списка атрибутов> закрашивает указанную область текущим цветом тона.

После выполнения оператора FILL можно подсчитать количество пикселей, подвергшихся перекраске. Это значение возвращает функция

FILLED0

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

В Beta Basic, как и в других диалектах Бейсика для ZX Spectrum, присутствуют операторы скроллинга графического окна экрана92:

ROLL <режим> [. <шаг> ] [; <х>, <у>; <ширина> г <высота>)

SCROLL [<режим>[,<шаг>][;<х>,<у>;<ширина>,<высота>]|

Оператор ROLL выполняет циклический скроллинг, при котором изображение, пропадающее за границей окна, выплывает с противоположной стороны, a SCROLL — обычный скроллинг, уводящий изображение безвозвратно.

Окно экрана, над которым производятся эти действия, задается четырьмя параметрами: <х> и <у> — координаты в пикселях верхнего левого угла окна; <ширина> — ширина окна, задаваемая в стандартных знакоместах (диапазон от 1 до 32); <высота> — высота окна в пикселях.

Значения параметров <х> и <у> операторы скроллинга округляют до чисел, кратных восьми, в сторону увеличения.

Если координаты и размеры окна не указывать, то действие оператора будет распространяться на весь экран.

Расстояние в пикселях, на которое будет осуществлено смещение изображения в окне при однократном выполнении операторов скроллинга, задается параметром <шаг>. Допустимый диапазон его значений: от 1 до 256 для горизонтальных перемещений и от 1 до 176 — для вертикальных. По умолчанию параметр <шаг> принимает значение 1.

Параметр <режим > задает направление скроллинга и область его действия: изображение в окне может сдвигаться без смещения атрибутов, со смещением атрибутов, а также возможен сдвиг атрибутов при неизменной картинке. В последнем случае сдвиг производится на 8 пикселей независимо от того, какое значение задано в параметре <шаг>. Зависимость режимов работы операторов ROLL и SCROLL от значения параметра <оежим> приведена в табл. 17.

Таблица 17. Режимы работы операторов ROLL и SCROLL.

! KojKpiMим*"'

HWplMt Htltlfl

О&ММСУЬ Д<квС¥Ш4Й ...

1

| ' !

влево

только атрибуты

; 2 вниз

1 1 {

только атрибуты j

1 3 вверх

только атрибуты j

1 А 1 '

4 вправо

только атрибуты

с <

5 влево

j

изображение без атрибутов

! 6 вниз

( 1

изображение без атрибутов

! 7

вверх

изображение без атрибутов

1 8

1

вправо

изображение без атрибутов

! 9

влево

все изображение

I «

вниз

все изображение

i 11

вверх

все изображение

! ^

вправо

все изображение

Единственное синтаксическое различие между операторами ROLL и SCROLL заключается в том, что последний можно использовать вообще без параметров. При этом происходит скроллинг всего экрана вверх на 8 пикселей (одну символьную строку) вместе с атрибутами.




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


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

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



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

Похожие статьи:
Истории - милицейские байки, продолжение.
Поздравляем - Итоги конкурса на лучшую программу , проведенного газетой "Калининградская правда". Победили авторы игры LAST BATTLE.
ZX-обоз - Партийная жизнь (окончание).
CMOS-часы - Микросхема CMOS-часов для компьютера (схема включения).
Coding - техника и алгоритмы демомейкинга: быстрый вывод графики через стек.

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