|
Особенности национальной работы с FutureLibrary
В этой статье я расскажу, что такое FutureLibrary (если кто-то до сих пор не знает), и как использовать её основные операторы. Итак FutureLibrary - это очень удобная и милая библиотека для QB. Она была создана корпорацией Future Software (а точнее сreated by Michael Rye Sorensen and Jorden Chamid) в 1999 году. Вы можете посетить сайт Future Software на qb45.com (впрочем уже не можете - сайт продан ;-) ). Версию 3.5 вы можете скачать из раздела "QB и другое". Работает она как и многие другие библии - в начале проги пишем: REM $INCLUDE: 'future.bi'. А потом начинаем вместо стандартных операторов использовать операторы FL.
Сначала поговорим о операторах экрана. Fl поддерживает разрешение от 320х200 до 2048х1536 и цветовую палитру в 8, 15, 16 и 32 бита. Оператор для выбора режима экрана выглядит следующим образом: Set ###x### (количество бит). В конце программы надо написать: ResetScreen. Этот оператор выключит режим экрана, заданый нами выше. Оператор Set ###x### (номер бит) поддерживает только несколько режимов, среди них: 320х200, 320х240, 320х400, 320х480, 400х300, 512х384, 640х350, 640х400, 640х480, 720х480, 720х576, 800х600, 1024х768, 1152х864, 1280х960, 1280х 1024, 1600х1200, 1920х1080, 1920Х1200, 1920х1440 и 2048х1536. Что-бы задать любое другое разрешение нам понадобится оператор: SetScreenMode (разрешение по Х, разрешение по Y, количество бит).
Что-бы вывести какой-либо текст на экран надо использовать оператор Future.PRINT (координата Х для верхнего левого угла текста, координата Y для верхнего левого угла текста, сам текст, цвет текста, цвет фона для текста). Оператор SetFont (режим) используется для выбора размера шрифта: если режим = 0, тогда размер шрифта будет 8х8; режим = 1 - размер = 8х16; режим = 3 - размер = 8х14. Я нарисовал таблицу в которой указаны операторы рисования и их функции. Объяснения к таблице: х,у,х1,х2,х3,у1,у2,у3 - координаты; с - цвет; r - радиус; array - переменная. BitScan - новая, очень интересная переменная, она меняет толщину линии (-1 стандартная толщина).
Оператор в QB
|
Оператор в FL
|
PSET (x,y),c
|
Future.PSET (x,y,c)
|
LINE (x1,y1)-(x2,y2),c
|
Future.LINE (x1,y1,x2,y2,c,BitScan)
|
POINT (x,y)
|
Future.POINT (x,y)
|
GET (x1,y1)-(x2,y2),array
|
Future.GET (x1,y1,x2,y2,array)
|
PUT (x1,y1),array
|
Future.PUT (x1,y1,array)
|
CLS
|
Future.CLS
|
Закрашеный триугольник
|
Future.TRIFILL (x1,y1,x2,y2,x3,y3,c)
|
LINE (x1,y1)-(x2,y2),c, B
|
Future.BOX (x1,y1,x2,y2,c)
|
LINE (x1,y1)-(x2,y2),c, BF
|
Future.FILLBOX (x1,y1,x2,y2,c)
|
CIRCLE (x,y),r,c, BF
|
Future.FILLCIRCLE (x,y,r,c)
|
CIRCLE (x,y),r,c
|
Future.CIRCLE (x,y,r,c)
|
Теперь об одном очень удобном новшестве - прямой работе с файлами типа *.bmp, *.gif, *.pcx. Все они вызываются приблизительно одним способом: Future.LoadGIF (имя, разрешение по Х, разрешение по У); Future.LoadBMP (имя, разрешение по Х, разрешение по У); Future.LoadPCX (имя, разрешение по Х, разрешение по У). Для анимационных GIF - файлов можно использовать следующие операторы: Future.OpenAGif (имя файла, GifHandle); Future.CloseAGif (GifHandle); Future.putAGif (позиция по Х, позиция по У, GifHandle). Не трудно догадатся, что первый опер открывает файл, второй закрывает, а третий размещает файл. GifHandle надо оставить с таким-же именем.
FL имеет ещё одну замечательную способность - использовать WAVE файлы в прогах. Для начала надо надстроить ваш SoundBlaster. Для этого надо использовать оператор: SBSetup ( Порт, Ldma, Hdma, Irq, тип SB). Порт для SB обычно 220h(544), но также может иметь значения от 220h до 260h. Последних 4 значения зависят от вашего SB. Вот таблица по которой вы разберётесь какие значения вам нужны.
Ваш SB
|
Sbtype
|
IRQ
|
Hdma
|
Ldma
|
SB 1.xx
|
1
|
5 or 7
|
***
|
0, 1 or 3
|
SB 2.xx
|
2
|
5 or 7
|
***
|
0, 1 or 3
|
SB pro
|
3
|
5 or 7
|
***
|
0, 1 or 3
|
SB16
|
4
|
2, 5, 7 or 10
|
5, 6 or 7
|
0, 1 or 3
|
Чтобы начать воспроизведение - следует использовать оператор LoadWav (имя файла, частота). Частота в FL поддерживается от 5кГц до 45кГц. Чтобы остановить произведение мелодии надо использовать опер: StopAndReset ().
Теперь о крысе. Включает мышь опер Future.MouseOn; выключает Future.MouseOff. Чтобы использовать ушастого в SVGA режиме надо постоянно вызывать оператор Future.UpdateMouse. Чтобы задать начальные координаты для мышки надо воспользоваться опером SetLocation (координата X, координата Y). Чтобы выбрать цвет курсора надо использовать опер SetMouseMaskColor (номер цвета). Также существует три функции, которые сообщают о координатах крысы и нажатых кнопках (Future.MouseX, Future.MouseY, Future.MouseB). Также существует оператор для задания чувсвительности мышки - SetMouseSensitivity (чувсвительность по горизонтали, чувсвительность по вертикали).
Ещё одна великолепная новость - теперь мы можем поворачивать и масштабировать фрагменты, взятые операторм GET. Для этого нам понадобятся операторы Future.ROTATE (координата x, координата y, угол поворота в градусах, масштаб от 0 до 2 (1-ни увеличивает, ни уменьшает), название рисунка) и Future.ROTATEВ (координата x, координата y, угол поворота в градусах, масштаб от 0 до 2 (1-ни увеличивает, ни уменьшает), название рисунка).
Я упомянул только о наиболее используемых операторах, но в одной из следующих статей я вам расскажу о множестве других оригинальных операторах и функциях (таких как сохранение палитры, регулируемый таймер, прокрутка страниц, спецеффекты …)
Автор :Mr.Nice Guy
|