1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ren’Py】nvlモードでダイアログと入力画面を同時に表示する

Last updated at Posted at 2024-03-05

2024年3月5日時点Ren'Py ver.8.6.0の初心者の覚書。
変なところやもっと効率的な部分があったら教えてください。

この記事で確認できる実装内容は以下です。

  1. nvlモードでダイアログと入力画面を同時に表示する
  2. nvlモードでダイアログと選択肢を同時に表示する

通常nvlモードでinputスクリーンやchoiceスクリーンを表示するとダイアログ部分が非表示になります。
image.png
image.png

ダイアログと入力画面を同時に表示する

参考URL:renpy.input boxed in center of the screen?

完成図.rpy
screen input(prompt):
    modal True #入力を完了しない限りダイアログを進行しない
    zorder 1 #ダイアログより前にスクリーンを表示する
    frame:
        style "input_frame"
        vbox:
            xalign 0.5
            yalign 0.5
            text prompt
            null height 10
            input id "input"

inputスクリーンに以下の記述を追加します。

screen input(prompt):
+   modal True #入力を完了しない限りダイアログを進行しない
+   zorder 1 #ダイアログより前にスクリーンを表示する
    frame:
        style "input_frame"
        vbox:
            xalign 0.5
            yalign 0.5
            text prompt
            null height 10
            input id "input"

inputスクリーンを呼び出す時

    tete "あなたは誰ですか"
+   renpy.call_screen("input",prompt="回答を入力してください")
+   #renpy.input()ではなくcall_scren()で呼び出す

image.png

ダイアログと選択肢を同時に表示する

完成図.rpy
screen nvl(dialogue, items=None):
    window:
        style "nvl_window"
        frame:
            style "input_frame"
     #menuで選択肢を呼び出したときに選択肢画面が表示される
     if items:
         frame:
             vbox:
                 id "menu"    
                 for caption, action, chosen in items:   
                     if action:   
                         button:
                             style "nvl_menu_choice_button"
                             action action    
                             text caption style "nvl_menu_choice"
                     else:
                         text caption style "nvl_dialogue"

nvlスクリーンに以下の記述を追加します。

screen nvl(dialogue, items=None):
    window:
        style "nvl_window"
        frame:
            style "input_frame"
    #menuで選択肢を呼び出したときに選択肢画面が表示される
+    if items:
+        frame:
+            vbox:
+                id "menu"    
+                for caption, action, chosen in items:   
+                    if action:   
+                        button:
+                            style "nvl_menu_choice_button"
+                            action action    
*                            text caption style "nvl_menu_choice"
+                    else:
+                        text caption style "nvl_dialogue"
        
            

nvlモードを開始するときに以下の設定を追加します。

init python:
+    menu = nvl_menu         

あとはいつも通りmenu形式で書けば呼び出せます。

    menu:
        doc "もう一回遊ぶ?"
        "Yes":
            jump start
        "No":
            pass       

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?