1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
====== Модуль Click ======
^ Подключение | require %%"%%click%%"%% |
^ Тип | расширение кода |
^ Зависимости | нет |
===== Описание =====
Модуль позволяет удобным способом отслеживать клики мышкой по картинке сцены.
При этом, во время клика будет вызван обработчик click текущей сцены, или
одноименный обработчик game.click. В параметрах передаются координаты клика (x, y)
в системе координат оригинального (немасштабированного) изображения. Координата 0,0 соответствует
верхнему левому углу.
Начиная с 1.4.0 функциональность модуля click расширена.
Если необходимо получать события кликов в любой области игрового экрана (если щелчок пришелся на фон), необходимо установить переменную click.bg:
click.bg = true
При этом, в обработчик сначала придут координаты клика фона и координаты клика картинки (если клик пришелся на картинку);
game.click(s, x, y, px, py)
Внимание!!! В режиме прямого доступа (см. модуль sprites) координаты кликов всегда приходят относительно фона.
Если необходимо получать события не только нажатия, но и отжатия, используйте переменную click.press:
click.press = true;
Тогда, в обработчик придет булевое значение press. При нажатии кнопки мыши press установлен в true, при отжатии в false.
game.click(s, press, x, y, px, py)
Если необходимо получать клики не только от первой кнопки мыши, используйте переменную click.button. При этом, в обработчик будет передан код кнопки мыши.
click.button = true
game.click(s, press, button, x, y, px, py)
===== Примеры использования =====
<code lua>
game.click = function(s, x, y)
p ("Click at:",x,",", y);
end
house = room {
nam = 'Дом';
pic = 'house.png';
click = function(s, x, y)
if x > 100 and x < 120 and y > 50 and y < 90 then
goto 'street'
end
end
-- ...
}
</code>
|