モード link

Ren'Py においてモードはインタラクションのタイプを記述する簡単な方法です。モードが Ren'Py に伝えられると、ユーザー定義コールバックが呼び出されます。これらのコールバックは、たいていはユーザーインターフェースの再設定によるモードの変更を反映するために使われます。例えば、 ADV モードから NVL モードに変わる時、あるいはメニューなどを開く時にトランジションが出来ます。

モード機能の目的はそれらの変更に対して、パワフルで融通の利く検出、反応方法を提供することです。

デフォルトのモード link

次のものは組み込みのインタラクションに対応するモードです。 :

start

これはゲームの開始のように新しいコンテキストがつくられた時のRen'Pyのモードです。Ren'Py は決して自動的にはこのモードに入りませんが、代わりにモードリストを初期化して start を含みます。

say

ADV モードで say ステートメントを実行した時に Ren'Py が入るモードです

menu

ADV モードで menu ステートメントを実行した時に Ren'Py が入るモードです。

nvl

NVL モードで say ステートメントを実行した時に Ren'Py が入るモードです。

nvl_menu

ADV モードで menu ステートメントを実行した時に Ren'Py が入るモードです。

pause

renpy.pause() が実行された時に Ren'Py が入るモードです。これは時間が指定されていない pause ステートメントを実行している間にRen'Pyが入るモードでもあります。

with

with ステートメントでトランジションの開始が起こる時に Ren'Py が入るモードです。これは特定の時間の pause ステートメントにも使われます。

scene,show,hide ステートメントのすべての前処理が実行された後、 with ステートメントの最初に with モードに入ることに注意してください。

screen

call screen ステートメントを使ってスクリーンが呼び出された時にRen'Pyが入るモードです。

imagemap

renpy.imagemap() を使って old-style のイメージマップが呼び出される時にRen'Pyが入るモードです。

input

renpy.input() 関数を使ってテキスト入力が要求された時に Ren'Py が入るモードです。

renpy.mode 関数の呼びだしで入るその他のモード

renpy.get_mode() link

現在のモードを返すか、 定義されていなければ None を返します。

renpy.mode(mode) link

Ren'Py を与えられた名前のモードに入らせるか、既に入っているならそのモードに留まります。

モードコールバック link

config.mode_callbacks 変数は Ren'Py がモードに入る度に呼び出されるモードコールバックのリストを含みます。モードコールバックは二つのパラメーターで呼び出されます。

mode

今入っているモードの名前の文字列

old_modes

最近のものから古いものの順にシステムが以前入ったモードの文字列のリスト。

既に入っているモードに入った場合、 old_modes の最初の要素は mode の要素に等しいです。

モードコールバックの例 link

このモードコールバックは ADV モードから NVL モードや vice-versa に移るとき、トランジションを起こします。これは Ren'Py の一部として組み込まれているので実際に使う必要はありません

init python:
    def _nvl_adv_callback(mode, old_modes):

        old = old_modes[0]

        if config.adv_nvl_transition:
            if mode == "nvl" or mode == "nvl_menu":
                if old == "say" or old == "menu":
                    nvl_show(config.adv_nvl_transition)

        if config.nvl_adv_transition:
            if mode == "say" or mode == "menu":
                if old == "nvl" or old == "nvl_menu":
                    nvl_hide(config.nvl_adv_transition)

    config.mode_callbacks.append(_nvl_adv_callback)