Untitled
unknown
plain_text
2 years ago
2.0 kB
12
Indexable
//Set functions for Touch, Click and Long touch; 2.0; 2023.12.19; by Paradox
//
//For detailed instructions, see the example.
//Constants
float double_click_time = 0.3;
float long_click_time = 3.0;
//Variables
integer touch_start_counter;
integer touch_detected;
float touch_time_1;
float touch_time_2;
integer isClick()
{
if (touch_start_counter == 1 && touch_detected == 0)
{
touch_start_counter = 0;
llSetTimerEvent(0.0);
return TRUE;
}
else return FALSE;
}
integer isDoubleClick()
{
if (touch_start_counter == 2)
{
touch_start_counter = 0;
llSetTimerEvent(0.0);
return TRUE;
}
else return FALSE;
}
integer isLongClick()
{
if (touch_time_2 - touch_time_1 >= long_click_time)
{
touch_time_1 = touch_time_2;
touch_start_counter = 0;
llSetTimerEvent(0.0);
return TRUE;
}
else return FALSE;
}
default
{
touch_start(integer total_number)
{
//For clicks
touch_start_counter += 1;
if (touch_start_counter == 1)
{
llSetTimerEvent(double_click_time);
touch_time_1 = llGetTime();
}
//Double click event
if (isDoubleClick() == TRUE)
{
llSay(0, "is Double Click");
}
}
touch(integer num_detected)
{
//For clicks
touch_detected = 1;
if (touch_start_counter == 1)
{
touch_time_2 = llGetTime();
}
//Long click event
if (isLongClick() == TRUE)
{
llSay(0, "is Long Click");
}
}
touch_end(integer num_detected)
{
//For clicks
touch_detected = 0;
}
timer()
{
//Click event
if (isClick() == TRUE)
{
llSay(0, "is Click");
}
}
}Editor is loading...
Leave a Comment