モード 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)