57 lines
2.8 KiB
Plaintext
57 lines
2.8 KiB
Plaintext
====== Модуль 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>
|