Встроенная функция
Функция MOUSEY
Положение указателя программа узнаёт в тот момент, который выбрала сама. Функция MOUSEY возвращает текущую вертикальную координату указателя мыши, и её вызывают в собственном цикле, когда нужно сверить позицию с рисунком или интерфейсом.
Что измеряется на каждой поверхности
На экране SCREEN координата Y измеряется в пикселях клиентской области. На холсте CANVAS результат соответствует мировому положению указателя после преобразования через VIEWPORT и CAMERA. Для чтения нужен графический SCREEN 1..10 или активный CANVAS; отсутствие поверхности сообщает MB3010.
На экране VIEW, WINDOW и PMAP не пересчитывают координату мыши, а на холсте учитываются текущие область и камера. Функция читает только текущее состояние и не сообщает отдельные события перемещения; для процедуры по каждому событию используется ON MOUSE.
Синтаксис и аргументы
MOUSEY()
Поддерживается единственная форма MOUSEY(). Аргументов нет, но скобки остаются частью вызова.
Что возвращает функция
Координата возвращается как значение типа LONG.
- Если активен
SCREENи среда выполнения знает положение указателя, возвращается текущая Y-координата в клиентской области активного окна. - Если активен
CANVASи среда выполнения знает положение указателя, возвращается мировая Y-координата точки под мышью. - Если положение указателя недоступно, возвращается
-1.
Начало координат и отрицательные значения
В SCREEN начало клиентской области находится слева сверху; Y увеличивается вниз. В CANVAS функция возвращает камера Y + физический Y - верхняя граница области.
В CANVAS мировая координата считается как положение камеры плюс смещение указателя внутри прямоугольника VIEWPORT. Точка вне холста или вне активной области VIEWPORT не образует мировую координату: функция возвращает -1. Отрицательное мировое значение при этом может быть допустимой координатой сцены и само по себе не доказывает отсутствие указателя.
Для горизонтальной координаты используется встроенная функция MOUSEX.
Диагностика
MB2004: в встроенную функциюMOUSEYпереданы аргументы.MB3010: встроенная функцияMOUSEYвызвана без активного графического режимаSCREENи без активногоCANVAS.
Пример чтения координат
SCREEN 1
PRINT MOUSEY()
PRINT MOUSEX()
SLEEPПрограмма печатает две координаты указателя в пикселях окна. Если положение ещё неизвестно, выводятся -1 и -1. Затем программа ждёт клавишу.