NVLモードで自動改行する

Ren’PyのNVLモード(画面全体に文字を表示するモード)には自動改行がありません。なので画面から文字がはみださないようにするため、 nvl clear で手動で改頁を明示する必要があります。

けどやはりそれを不便に思う人もいるようで、自動改頁スクリプトを作った人がいました。Automatically clear nvl text


init -1 python:
    max_nvl_line = 5 #1画面に表示する行数
    nvl_cleared = False

    def nvlsayhooks(event, interact=True, **kwargs):
        global nvl_cleared
        if not interact:
            return
        if event == "begin":
            if nvl_cleared is True:
                store.nvl_list = [store.nvl_list[-1]]
                nvl_cleared = False
        elif event == "end":
            if len(store.nvl_list) > max_nvl_line - 1:
                store.nvl_list = [store.nvl_list[-1]]
                nvl_cleared = True

このスクリプトを適当なファイルに保存してください。 max_nvl_line を変更すれば 1 画面に表示する行数を変更出来ます。使用するには


init:    # キャラクター宣言時に nvlsayhooks を callback に設定する
    define e = Character('Eileen', kind=nvl, callback=nvlsayhooks, color="#c8ffc8")

のようにしてください。これは単純に行数で改頁するため、1 行の文字数がバラバラだと役に立ちません。文章のリズムもあるため、改頁ぐらいは手動でした方がいいと思います。


コメントを残す

メールアドレスが公開されることはありません。