既存のスクリーンを再利用しつつ機能を追加する方法 confirmスクリーンでマウスを自動移動するようにする

 以下の様にして既存のスクリーンを再利用しつつコードを追加できます。

init 10:
    $renpy.display.screen.screens[("_confirm", None)] = renpy.display.screen.screens[("confirm", None)]

    screen confirm(message, yes_action, no_action):
        #variant を設定してPCプラットフォームでのみこのスクリーンが使用されるようにします。
        variant "pc"
        # Yesにマウスを自動移動するようにします。
        on "show" action MouseMove(555, 385, 0.2)
        # 元々のconfirmスクリーンを使用します。
        use _confirm(message, yes_action, no_action)

 定義したスクリーンはrenpy.display.screen.screensに保存されているようです。タプルの2つ目の要素はvariantです。以下のコードでは標準のconfirmスクリーンを別名の_confirmとして保存しなおし、PCプラットフォームで使用される新しいconfirmスクリーン内で使用しています。今回定義したスクリーンは (“confirm”, “pc”)をキーにrenpy.display.screen.screensに保存されます。

 これでconfirmスクリーン表示時に自動でマウスをYesボタンに移動できるようになります。本来のスクリーンは変更していないので本体が更新されても修正しなくてよくなります。

Pocket