Вы можете вызывать get_mouse() в большинстве текстовых и пиксельных режимов.

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

DOS в общем случае не обеспечивает использование мыши в графических режимах SVGA (экраны с числом пикселов более 640x480). Это ограничение снято в Windows 95 (DOS 7.0). Грэм Барки, Питер Блю и другие программисты распространяют подпрограммы для мыши, которые решают проблемы, связанные с использованием мыши в SVGA. Посетите в Интернет страницу Архива файлов Euphoria.

Координаты x и y, выдаваемые функцией, будут совпадать с положением острия курсора мыши или могут относиться к ближайшему пикселу, на который это острие указывает. Проверьте это, если вы пытаетесь прочесть цвет пиксела с помощью функции get_pixel(). Может оказаться, что вам нужны координаты x-1, y-1 вместо x, y.

Пример 1:

Выданные величины:

{2, 100, 50}

говорят о том, что в данный момент левая кнопка нажата, а курсор мыши находится на экране в точке с координатами x=100, y=50.

Пример 2:

Чтобы проверить LEFT_DOWN, т.е. не нажата ли левая кнопка, напишите программу наподобие следующей:

object event

while 1 do

event = get_mouse()

if sequence(event) then

if and_bits(event[1], LEFT_DOWN) then

-- левая кнопка была нажата

exit

end if

end if

end while

См. также:

mouse_events, mouse_pointer, and_bits

get_pixel

Платформа:

DOS32

Синтаксис:

x = get_pixel(s)

Описание:

Когда s является 2-х элементным рядом экранных координат {x, y}, get_pixel() выдаёт номер цвета пиксела на пиксельном экране в этой точке (небольшое целое число).

Когда s является 3-х элементным рядом формы {x, y, n}, get_pixel() выдаёт ряд из n номеров цветов для точек, начиная с {x, y} и с шагом 1 вправо, {x+1, y}, {x+2, y} и т.д.

Точки за пределами экрана имеют непредсказуемые номера цветов.

Комментарии:

Когда аргумент n задан, для чтения цветов пикселов используется очень быстрый алгоритм. Он значительно быстрее, чем поочерёдный вызов get_pixel() для чтения цвета каждого следующего пиксела.

Пример:

object x

x = get_pixel({30,40})

-- x даёт значение цвета в точке x=30, y=40

x = get_pixel({30,40,100})

-- x даёт ряд из 100 номеров цвета, представляющих

-- строчку пикселов, начинающуюся в точке {30,40} и идущую вправо

См. также:

pixel, graphics_mode, get_position

get_position

Синтаксис:

include graphics.e

s = get_position()

Описание:

Выдаёт номера текущих строки и колонки позиции, в которой находится курсор, как 2-х элементный ряд вида {строка, колонка}.

Комментарии:

Функция get_position() работает в обоих режимах - текстовом и пиксельном. В пиксельных режимах курсор не будет виден, но get_position() будет выдавать строку и колонку, в которых появится следующий символ.

Система координат, в которой отображаются символы, отличается от той, в которой отображаются пикселы. Пикселы отображаются так, что верхний левый находится в точке (x=0,y=0) и первая координата управляет горизонтальным положением, слева направо. Для символов же первая координата управляет вертикальным положением, сверху вниз, а верхний левый находится в позиции 1,1. В пиксельных режимах вы можете одновременно выводить на экран и пикселы, и текст. Функция get_position() выдаёт текущие строку и колонку для выводимого вами текста, а не для пиксела, который вы собираетесь включить. Соответствующая функция для получения текущей позиции пиксела в языке Euphoria отсутствует.

См. также:

position, get_pixel

get_screen_char

Синтаксис:

include image.e

s = get_screen_char(i1, i2)

Описание:

Выдаёт 2-элементный ряд s в форме {код ascii, атрибут} для символа на экране в строке i1, колонке i2. Ряд s состоит из двух атомов. Первый даёт код ASCII для символа. Второй же содержит информацию о цветах символа и фона и, возможно, другие данные, относящиеся к внешнему виду символа на экране.

Комментарии:

С помощью подпрограмм get_screen_char() и put_screen_char() вы можете запоминать и выводить на экран символы с их атрибутами.

Пример:

-- запоминает в ряде s символ и его атрибут из верхнего левого угла экрана

s = get_screen_char(1,1)

-- выводит из ряда s символ с его атрибутом в позицию строка 25, колонка 10

put_screen_char(25, 10, {s})

См. также:

put_screen_char, save_text_image

get_vector

Платформа:

DOS32

Синтаксис:

include machine.e

s = get_vector(i)

Описание:

Перейти на страницу:

Все книги серии Euphoria

Похожие книги