Ren'Py においてモードはインタラクションのタイプを記述する簡単な方法です。モードが Ren'Py に伝えられると、ユーザー定義コールバックが呼び出されます。これらのコールバックは、たいていはユーザーインターフェースの再設定によるモードの変更を反映するために使われます。例えば、 ADV モードから NVL モードに変わる時、あるいはメニューなどを開く時にトランジションが出来ます。
モード機能の目的はそれらの変更に対して、パワフルで融通の利く検出、反応方法を提供することです。
次のものは組み込みのインタラクションに対応するモードです。 :
これはゲームの開始のように新しいコンテキストがつくられた時のRen'Pyのモードです。Ren'Py は決して自動的にはこのモードに入りませんが、代わりにモードリストを初期化して start を含みます。
ADV モードで say ステートメントを実行した時に Ren'Py が入るモードです
ADV モードで menu ステートメントを実行した時に Ren'Py が入るモードです。
NVL モードで say ステートメントを実行した時に Ren'Py が入るモードです。
ADV モードで menu ステートメントを実行した時に Ren'Py が入るモードです。
renpy.pause()
が実行された時に Ren'Py が入るモードです。これは時間が指定されていない pause
ステートメントを実行している間にRen'Pyが入るモードでもあります。
with
ステートメントでトランジションの開始が起こる時に Ren'Py が入るモードです。これは特定の時間の pause
ステートメントにも使われます。
scene,show,hide ステートメントのすべての前処理が実行された後、 with ステートメントの最初に with モードに入ることに注意してください。
call screen
ステートメントを使ってスクリーンが呼び出された時にRen'Pyが入るモードです。
renpy.imagemap()
を使って old-style のイメージマップが呼び出される時にRen'Pyが入るモードです。
renpy.input()
関数を使ってテキスト入力が要求された時に Ren'Py が入るモードです。
renpy.mode 関数の呼びだしで入るその他のモード
renpy.
get_mode
() link現在のモードを返すか、 定義されていなければ None を返します。
renpy.
mode
(mode) linkRen'Py を与えられた名前のモードに入らせるか、既に入っているならそのモードに留まります。
config.mode_callbacks
変数は Ren'Py がモードに入る度に呼び出されるモードコールバックのリストを含みます。モードコールバックは二つのパラメーターで呼び出されます。
今入っているモードの名前の文字列
最近のものから古いものの順にシステムが以前入ったモードの文字列のリスト。
既に入っているモードに入った場合、 old_modes の最初の要素は mode の要素に等しいです。
このモードコールバックは 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)