Я работал над этим для одной из моих игр и подумал, что выпущу ее на случай, если кому-то еще будет интересно. Это сеточная карта, где каждый "квадрат" скрыт, пока игрок не посетит эту область. Вы можете увидеть карту из игрового меню (нажав Escape).

Вы также можете нажать на отдельные квадраты карты, чтобы перейти к "label"(метке), соответствующей этому местоположению. Прямо сейчас у меня есть все квадраты, возвращающиеся к метке "start", но вы можете изменить это в соответствии со своими потребностями.

Чтобы добавить код в *вашу* игру, вам необходимо скопировать следующие файлы в вашу папку с "игрой":
- mapscreen.rpy
- mapcomp.rpy
- скопировать папку "map"(карта), которая по умолчанию содержит мои изображения.

В дополнении, вам нужен этот код в начале вашего скрипт-файла(script.rpy):
Код
init python hide:
    for file in renpy.list_files():
        if file.startswith('map/') and file.endswith('.png'):
            name = file.replace('map/', '').replace('.png','')
            renpy.image(name, Image(file))

Он просто определяет все изображения без необходимости делать это вручную.

Этот блок кода тоже нужен вам в начале вашего скрипт-файла:
Код
init -2 python:
    map_a1 = "hidden"
    map_a2 = "hidden"
    map_a3 = "hidden"
    map_a4 = "hidden"
    map_a5 = "hidden"
    map_a6 = "hidden"
    map_a7 = "hidden"

    map_b1 = "hidden"
    map_b2 = "hidden"
    map_b3 = "hidden"
    map_b4 = "hidden"
    map_b5 = "hidden"
    map_b6 = "hidden"
    map_b7 = "hidden"

    map_c1 = "hidden"
    map_c2 = "hidden"
    map_c3 = "hidden"
    map_c4 = "hidden"
    map_c5 = "hidden"
    map_c6 = "hidden"
    map_c7 = "hidden"

    map_d1 = "hidden"
    map_d2 = "hidden"
    map_d3 = "hidden"
    map_d4 = "hidden"
    map_d5 = "hidden"
    map_d6 = "hidden"
    map_d7 = "hidden"

    map_e1 = "hidden"
    map_e2 = "hidden"
    map_e3 = "hidden"
    map_e4 = "hidden"
    map_e5 = "hidden"
    map_e6 = "hidden"
    map_e7 = "hidden"

Он устанавливает части карты, как скрытые. Если вы хотите, чтобы «домашний» квадрат или иной, показывалось с самого начала игры, установите для этого квадрата значение «found»(найдено), а не «hidden»(скрыто).

Если ваша игра еще не настроена с быстрым меню, вам нужно будет добавить его.

Добавьте этот код в конец вашего файла screens.rpy:
Код
##############################################################################
# Игровое меню
#
# Экран, который появляется, когда игрок нажимает кнопку Escape.

image logo = "logo.jpg"

screen game_menu:
    tag menu
    
    add "logo"
    
    frame:
        xalign .5
        yalign .33
        
        has vbox spacing 5
   
        textbutton _("Continue") action Return()
        textbutton _("Save Game") action ShowMenu("save")
        textbutton _("Load Game") action ShowMenu("load")
        textbutton _("Map") action ShowMenu("map")
        textbutton _("Preferences") action ShowMenu("preferences")
        textbutton _("Main Menu") action MainMenu()
        textbutton _("Help") action Help()
        textbutton _("Quit") action Quit()


Затем добавьте этот код *после* метки start.
Код
$ _game_menu_screen = "game_menu" # Этот код активирует "pause menu"(меню паузы) в screens.rpy


После этого всё должно пойти хорошо! Код под лицензией Creative Commons, поэтому вы можете использовать его по своему усмотрению.


Скачать можно тут или в прикреплённых самой теме.
Автор на Lemma Soft: noeinan
Тема на Lemma Soft: тут
Перевёл: progxaker