steed/doc/modules/click.txt
2011-04-28 10:44:24 +00:00

57 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== Модуль 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>