コンテンツにスキップ

指定秒数経過後にイベントを実行

概要

YAYA で一定時間経過後にイベントを実行する方法を 2 通り解説します。システム辞書の SetDelayEvent 関数を使う方法と、OnSecondChange イベントを使って自作する方法があります。

コード例

方法 1: SetDelayEvent 関数を使用

30秒待たせるイベント
{
    "\0\s[0]それでは30秒お待ち下さい。\e"
    SHIORI3FW.SetDelayEvent('30秒待った', 30)
}

SetDelayEvent で指定秒数後に実行するイベント名を登録します。経過時間は DelayEventTime で確認できます。

方法 2: OnSecondChange を使った自作実装

// タイマー開始
OnTimerStart
{
    _sec = _argv[0]
    timer_count = _sec
}

// 毎秒実行(OnSecondChange から呼び出す)
OnTimerCounter
{
    timer_count--
    if timer_count <= 0 {
        OnTimerEnd
    }
}

// タイマー終了時の処理
OnTimerEnd
{
    "\0\s[0]時間になりました。\e"
}

説明

方法 1 の特徴

システム辞書(SHIORI3FW)に組み込まれた SetDelayEvent を使うシンプルな方法です。指定したイベント名が、指定秒数後に自動的に呼び出されます。

方法 2 の特徴

OnSecondChange イベント(毎秒発生)を利用してカウンターを実装します。より柔軟なカスタマイズが可能ですが、複数タイマーを同時計測する場合は追加の工夫が必要です。

関連項目

  • OnSecondChange
  • SHIORI3FW.SetDelayEvent
  • GETSECCOUNT