Difference between revisions of "LlSetTimerEvent/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (カテゴリ変更) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function/ja | {{LSL_Function/ja | ||
|func_id=107|func_sleep=0.0|func_energy=10.0 | |func_id=107|func_sleep=0.0|func_energy=10.0 | ||
|func=llSetTimerEvent|p1_type=float|p1_name=sec|p1_desc= | |func=llSetTimerEvent|p1_type=float|p1_name=sec|p1_desc=任意の 0 以外の正の値を指定すると作動し、ゼロ (0.0) を指定すると解除します。 | ||
|func_desc='''sec''' | |func_desc={{LSLG/ja|timer}} イベントを '''sec''' 秒ごとに最大 1 回起こします。 0.0 を指定すると以降のタイマーイベントの発生を停止します。 | ||
|func_footnote | |func_footnote | ||
|return_text | |return_text | ||
|spec | |spec | ||
|caveats= | |caveats= | ||
* | *タイマーイベントの時間間隔は以下の理由により伸びる場合があります。 | ||
* | ** '''時間拡張''' - 詳細は {{LSLG/ja|llGetRegionTimeDilation}} を参照してください。 | ||
** '''[[LSL Delay/ja#イベント|デフォルトのイベント遅延]]''' - 1 秒にいくつものイベントが発生した場合のみ。 | |||
** '''イベント実行時間''' - イベントの実行に非常に時間がかかった場合。 | |||
*タイマーはステートが変更されても残ります。しかし、スクリプトがリセットされると削除されます。 | |||
|constants | |constants | ||
|examples=< | |examples=<source lang="lsl2">float gap = 2.0; | ||
integer counter = 0; | integer counter = 0; | ||
default | default | ||
Line 18: | Line 20: | ||
state_entry() | state_entry() | ||
{ | { | ||
// | // 2 秒ごとのタイマーリスナーを起動します | ||
llSetTimerEvent(gap); | llSetTimerEvent(gap); | ||
llResetTime(); | llResetTime(); | ||
Line 25: | Line 27: | ||
touch_start(integer total_number) | touch_start(integer total_number) | ||
{ | { | ||
llSay(0, " | llSay(0, "タイマーが停止しました。"); | ||
llSetTimerEvent(0); | llSetTimerEvent(0); | ||
counter = 0; | counter = 0; | ||
Line 33: | Line 35: | ||
{ | { | ||
++counter; | ++counter; | ||
llSay(0, (string)counter+" | llSay(0, (string)counter+" が " + (string)llGetTime() | ||
+ " スクリプト秒の間にカウントされました。\n推測経過時間: " + (string)(counter * gap)); | |||
} | } | ||
}</ | }</source> | ||
|helpers | |helpers | ||
|also_functions= | |also_functions= | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llSensorRepeat}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetRegionTimeDilation}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetTime}}|}} | ||
|also_events={{LSL DefineRow|| | |also_events={{LSL DefineRow||{{LSLG/ja|timer}}|}} | ||
|also_tests | |also_tests | ||
|also_articles | |also_articles | ||
Line 48: | Line 51: | ||
|negative_index | |negative_index | ||
|sort=SetTimerEvent | |sort=SetTimerEvent | ||
|cat1=Script | |cat1=Script | ||
|cat2=Time | |cat2=Time | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 | ||
}} | }} |
Latest revision as of 13:25, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llSetTimerEvent( float sec );警告
- タイマーイベントの時間間隔は以下の理由により伸びる場合があります。
- 時間拡張 - 詳細は llGetRegionTimeDilation を参照してください。
- デフォルトのイベント遅延 - 1 秒にいくつものイベントが発生した場合のみ。
- イベント実行時間 - イベントの実行に非常に時間がかかった場合。
- タイマーはステートが変更されても残ります。しかし、スクリプトがリセットされると削除されます。
サンプル
float gap = 2.0;
integer counter = 0;
default
{
state_entry()
{
// 2 秒ごとのタイマーリスナーを起動します
llSetTimerEvent(gap);
llResetTime();
}
touch_start(integer total_number)
{
llSay(0, "タイマーが停止しました。");
llSetTimerEvent(0);
counter = 0;
}
timer()
{
++counter;
llSay(0, (string)counter+" が " + (string)llGetTime()
+ " スクリプト秒の間にカウントされました。\n推測経過時間: " + (string)(counter * gap));
}
}
関連項目
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。