File: click.txt

package info (click to toggle)
instead 1.6.0-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 6,220 kB
  • sloc: ansic: 26,619; makefile: 247; sh: 207; cpp: 93
file content (56 lines) | stat: -rw-r--r-- 2,840 bytes parent folder | download
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>