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

Megabasic - Шрифты.


ШРИФТЫ_

FONT, MODE, VDU, STIPPLE, SPRINT, DOWN

Начнем работу с MegaBasic с самого простого — изучим его шрифтовые возможности. Как уже упоминалось, для подготовки примеров мы будем пользоваться русифицированной версией MegaBasic 4.R. Это означает, что в оригинальной версии 4.0 один из двух латинских символьных наборов (FONT_1) заменен набором символов русского алфавита. В нем очертания знаков составляют стилистическое единство с сохраненным латинским шрифтом (FONT_2). Кроме того, в распоряжении программиста остается стандартный символьный набор, хранящийся в ПЗУ ZX Spectrum (FONT_0).

Итак, мы упомянули оператор, который переключает символьные наборы. Его формат

FONTJ

- где i — номер набора (0-, 1 или 2).

Текстовые возможности MegaBasic не ограничиваются выбором одного из трех символьных наборов. Он .позволяет менять размер символов текущего набора: 4x8, 8x8, 8x16 и 16x16 точек (рис. 18). Устанавливаются размеры шрифта оператором

MODE_m,[w]

Параметр m может принимать значения от 1 до 4, соответствующие приведенному ряду размеров шрифтов. Оператор MODE используется и с двумя параметрами: MODE_wlm. В этом формате w обозначает номер окна, для которого устанавливается размер шрифта т.

Комбинируя названные выше операторы обработки шрифтов, напишем небольшую демонстрационную программу:

10 PAPER 1: INK 6: BRIGHT 1: CLS 15 FONT_1: LET А$="Шрифты": GO SUB 100 20 FONT_2: LET A$="Fonts": GO SUB 100 30 FONT_0: LET A$="Fonts": GO SUB 100 40 MODE_1: GO TO 15

100 FOR N=1 TO 4:MODE_N: PRINT A$: PRINT : PAUSE 40: NEXT N 110 RETURN

Обратите внимание, что для шрифта FONT_1 (кириллица) не выводятся уменьшенные русские буквы в режиме MODE_1. Это объясняется тем, что в этом режиме MegaBasic не генерирует символы, а пользуется содержащимся в нем специальным (четвертым) символьным набором (аналогичным применяемому в одном из популярных текстовых редакторов Tasword).

MegaBasic предусматривает и альтернативный способ управления размерами символов. Оператор стандартного Бейсика PRINT CHR$ с параметрами 1...4 (не используемые Spectrum-Бейсиком коды символов) производит то же действие, что и оператор MODE. Еще один оператор MegaBasic, позволяющий достичь того же эффекта

VDUm

- представляется уж совершенным излишеством.

В сочетании с режимом FONT_4 может использоваться оператор

STIPPLE_d

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

IW«J

Mo<U_2

Шрифт

ModeJ

Шрифт

Mode_4

ШриФт

Рис. 18. Шрифты MegaBasic.

•S-r С 3 S S— =__

■г-ь

STIPPLE.

..5

STIPPLE.

_6

STIPPLE.

_7

STIPPLE.

_15

Рис. 19. Варианты штриховки.

В арсенале MegaBasic есть еще два оператора, нестандартно выводящие тексты на экран. Это SPRINT и DOWN.

SPRINT_x,y,u,v,a$

выводит символьную строку с увеличением в указанное число раз без привязки к знакоместам, то есть начиная с произвольной точки экрана. Параметры х и у задают координаты в пикселях начальной (левой верхней) позиции вывода текста (за начало координат принимается в данном случае левый верхний угол экрана); и и v — масштаб увеличения символа по горизонтальной и вертикальной координатам (дробные значения масштаба округляются до целых); а$ — строку символов, предназначенную для вывода на экран.

0

[

л __

м

hp

i

L

Г '

Т

l.-t

DOWN_n,c,a$

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

Теперь существенное замечание. В операторах MegaBasic, имеющих отношение к выводу на экран текстовой информации, размер знакомест (если не оговорено иное) считается равным не 8x8 пикселей, как в стандартном Бейсике, а 4x870. Соответственно, строки отсчитываются от верха экрана по-прежнему с 0 по 23, а столбцы от левого края экрана, но не с 0 по 31, ас 0 по 63, то есть по половинке стандартного знакоместа.

Следующая программа продемонстрирует возможности SPRINT и DOWN:

10 PAPER 1: INK 6: BRIGHT 1: CLS :FONT_1: LET А$="Шрифт" 100 FOR U=1 TO 6: LET X=(128-20*U): FOR V=1 TO 20 STEP 2 110 SPRINT_X, 5,U, V, A$ 115 INK 2: MODE_4: DOWN_5,30, A$: INK 6 120 PAUSE 40: CLS : NEXT V: NEXT U 130 GO TO 100




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


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

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



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

Похожие статьи:
Scene - интервью с Power Of Sound взятое на CAFe'2002.
Others - ROMкадром (юмор).
Gameland - прохождение игры The Price of Magik от Level 9.
С миру по биту - обзор писем читателей, кое-что об игре "Virus" и условиях проведения и участия в Открытом Чемпионате Вирусов.
Введение - пeрвый выпуск компьютeрного журнала.

В этот день...   28 марта