steed/doc/modules/click.txt

57 lines
2.8 KiB
Plaintext
Raw Normal View History

2011-02-28 11:04:59 +02:00
====== Модуль Click ======
^ Подключение | require %%"%%click%%"%% |
^ Тип | расширение кода |
^ Зависимости | нет |
===== Описание =====
Модуль позволяет удобным способом отслеживать клики мышкой по картинке сцены.
При этом, во время клика будет вызван обработчик click текущей сцены, или
одноименный обработчик game.click. В параметрах передаются координаты клика (x, y)
в системе координат оригинального (немасштабированного) изображения. Координата 0,0 соответствует
верхнему левому углу.
2011-04-28 13:44:24 +03:00
Начиная с 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)
2011-02-28 11:04:59 +02:00
===== Примеры использования =====
<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>