Перейти к содержанию
АнимеФорум

Рекомендуемые сообщения

Опубликовано (изменено)

либо очень много разбираться.

А ещё лучше если ты выучишь (достаточно начального уровня) язык программирования Python версии 2.7, это несложно - он самый лёгкий из существующих.

Документации на русском море.

Это позволит использовать все продвинутые фишки RenPy (Renai + Python, если не знал), а не спрашивать из-за каждой мелочи.

 

UPD - Дорогу осилит идущий.

Изменено пользователем Элионт (смотреть историю редактирования)
  • Ответов 1 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

Опубликовано

Всем привет!

У меня такой вопрос есть: как сделать cg комнату? http://www.renpy.org/doc/html/rooms.html

Насколько я помню, одна девушка уже задавала такой вопрос, но он повис в воздухе. Может кто сможет растолковать подробно, а то я так и не смог разобраться. Желательно для версии 6.9.3

Смотрел как это сделать на английском и не все понял.

Опубликовано

Так по ссылке и указано как сделать галерею. Вот если есть более конкретный вопрос - что не работает или не совсем понятно, то задавайте.

Был задан конкретный вопрос: Кто сможет растолковать подробно? Или нужен "чисто конкретный" вопрос? По этим ссылкам очень трудно понять, что делать. Какой размер изображений использовать для кнопок или рамок, например. Просто фон или с кнопками. Там много вопросов, потому и была просьба: растолковать подробно! Нет смысла рассматривать отдельные моменты, считаю, там нужно решать вопрос комплексно.

Опубликовано

Я тут недавно разбирал старые диски с программами и наткнулся на интересную штуку.

http://narod.ru/disk/60425264001.eb7ea279a646b404713e1b2a51c97729/FL.rar.html

При помощи этой программки я смог сделать музыку для одной из своих игрушек. Она на английском. Там можно создавать как свою музыку, так и обрабатывать уже готовые шаблоны. Может, кому пригодится.

Опубликовано

Был задан конкретный вопрос: Кто сможет растолковать подробно? Или нужен "чисто конкретный" вопрос? По этим ссылкам очень трудно понять, что делать. Какой размер изображений использовать для кнопок или рамок, например. Просто фон или с кнопками. Там много вопросов, потому и была просьба: растолковать подробно! Нет смысла рассматривать отдельные моменты, считаю, там нужно решать вопрос комплексно.

C "чисто конкретными" вопросами вы не по адресуsmile.gif

Во многом может помочь гугл-переводчик. Иногда бывает, что необходимо пояснить отдельные моменты - это сделать быстрее и проще. Если необходимо пояснить все и подробно - займет чуть больше времени.

Здесь полный код, который необходим для примера галереи (картинки, правда, вам придется сделать самостоятельно)

# Сначала надо скачать файл new_gallery.rpy по ссылке
# http://www.renpy.org/wiki/renpy/doc/cookbook/New_CG_Gallery (выделен цветом)
# и поместить его туда же, где и script.rpy,
# в этом файле и есть весь код для галереи
# Дальше в своем скрипте вы будете только наполнять галерею картинками

init:
   # Расположим меню навигации по галерее справа вверху.
   $ style.gallery_nav_frame.xpos = (800 - 10)   # положение по горизонтали
   $ style.gallery_nav_frame.xanchor = 1.0        # в вышеуказанной позиции окажется правый край меню
   $ style.gallery_nav_frame.ypos = 12              # положение по вертикали (12 пикс. от верхнего края экрана)

   # Добавим кнопку галереи в главное меню (после 2 кнопки сверху, называется "Gallery", при нажатии ведет к метке с названием "gallery")
   $ config.main_menu.insert(2, ('Gallery', "gallery", "True"))
   
   # в примере галереи используются не только названия файлов, но и названия картинок из игры
   # они должны быть определены заранее
   image bg beach daytime = "beach_daytime.jpg"
   image bg beach nighttime = "beach_nighttime.jpg"
   image bg lighthouse day = "lighthouse_day.jpg"
   image bg lighthouse night = "lighthouse_night.jpg"

label start:
   # Изначально все картинки закрыты
   # Чтобы увидеть их в галерее, сначала надо увидеть их во время игры.
   # Проверьте, что в самом начале игры все картинки в галерее закрыты
   # Затем начните игру и вернитесь в главное меню после просмотра одной-двух картинок
   # Теперь они будут доступны для просмотра
   # (чтобы сделать картинки снова "закрытыми", нажмите в модуле запуска "delete persistent")
   show bg beach daytime
   $ renpy.pause()
   show bg lighthouse night
   $ renpy.pause()
   show bg beach nighttime
   $ renpy.pause()
   show bg lighthouse day
   $ renpy.pause()
   return 
   
   
# Та самая метка, где мы укажем все картинки для галереи.
label gallery:
   python hide:

       # Создаем новый объект "галерея"
       g = Gallery()

       # Картинка, которая используется если наши картинки закрыты (размер должен быть такой же как и у уменьшенных картинок в галерее)
       g.locked_button = "gallery_locked.png"

       # Фон экрана, если картинка закрыта (размер - полный экран, как и у всех картинок галереи).
       g.locked_background = "gallery_lockedbg.jpg"

       # Рамки, которые рисуются поверх уменьшенных картинок в галерее - активный / не активный варианты соответственно (размер как у уменьшенных картинок в галерее, прозрачная середина рамки)
       g.hover_border = "gallery_hover.png"
       g.idle_border = "gallery_idle.png"

       # Фон экрана галереи
       g.background = "gallery_background.jpg"

       # Расположим уменьшенные картинки галереи на экране
       # В данном случае в виде сетки 3 на 4
       # Верхний левый угол сетки в позиции xpos 10, ypos 20.
       # В данном случае предполагается, что уменьшенные картинки будут 155x112 пикс.
       # Расстояние между картинками в сетке будет 160 пикс по горизонтали и 124 пикс по вертикали
       # Если необходимо использовать уменьшенные картинки большего размера, то надо будет изменить
       # количество картинок в сетке и/или расстояние между ними
       g.grid_layout((3, 4), (10, 20), (160, 124))

       # Покажем страницу с названием "Backgrounds" (название появиться в меню навигации галереи)
       g.page("Backgrounds")

       # Первая уменьшенная картинка
       g.button("thumb_beach.jpg")
       #
       # Покажем картинки, которые игрок уже видел во время игры
       # данные картинки должны быть определены заранее
       g.unlock_image("bg beach daytime")
       g.unlock_image("bg beach nighttime")
       #
       # Вот эта штука покажет картинку
       g.display("beach_sketch.jpg")
       # ... в том случае, если все предыдущие картинки были открыты
       g.allprior()

       # Вторая уменьшенная картинка
       g.button("thumb_lighthouse.jpg")
       g.unlock_image("bg lighthouse day")
       g.unlock_image("bg lighthouse night")
       g.display("lighthouse_sketch.jpg")
       g.allprior()



       # Создадим вторую страницу
       g.page("Characters")

       # Our first button
       g.button("thumb_lighthouse.jpg")
       g.unlock_image("bg lighthouse day")
       g.unlock_image("bg lighthouse night")
       g.display("lighthouse_sketch.jpg")
       g.allprior()
       
       
       # A second set of images.
       g.button("thumb_beach.jpg")
       #
       # These show images, if they have been unlocked. The image name must
       # have been defined using an image statement.
       g.unlock_image("bg beach daytime")
       g.unlock_image("bg beach nighttime")
       #
       # This shows a displayable...
       g.display("beach_sketch.jpg")
       # ... if all prior images have been show.
       g.allprior()


       # Теперь покажем галерею на экране
       g.show()
   return

Опубликовано

C "чисто конкретными" вопросами вы не по адресуsmile.gif

Во многом может помочь гугл-переводчик. Иногда бывает, что необходимо пояснить отдельные моменты - это сделать быстрее и проще. Если необходимо пояснить все и подробно - займет чуть больше времени.

Здесь полный код, который необходим для примера галереи (картинки, правда, вам придется сделать самостоятельно)

 

Спасибо за подробный ответ. Постараюсь разобраться. Я и сам переводил. Только ничего не получалось. Не работала галерея и все тут.

 

Я создал свой блог: http://gurvold.blogspot.com/

Если есть желание, можете посетить. Там же можно скачать мою самую первую игру на Ren'Py. Мне повезло, я рисовать не умею, а художник Mongo разрешил использовать его картинки. Правда рисунки у него, весьма специфического содержания. Детям не достигшим 18-ти летнего возраста скачивать игру не разрешаю!

Опубликовано

C "чисто конкретными" вопросами вы не по адресуsmile.gif

Во многом может помочь гугл-переводчик. Иногда бывает, что необходимо пояснить отдельные моменты - это сделать быстрее и проще. Если необходимо пояснить все и подробно - займет чуть больше времени.

 

Огромное спасибо! Все работает!!! Я тут сделал небольшой образец работающей галереи. Было много людей, которые хотели узнать, как она работает. Ребята, можете скачать из моего блога по ссылке на народ.

http://gurvold.blogspot.com/2012/09/cg.html

Опубликовано

У меня тут несколько развилок, где выбор пункта меню, добавляет разным персонажам отношение.

Например есть переменные:

sae_regard, suzu_regard, eris_regard, sakur_regard

 

При выборе пункта меню относящегося к персонажу Саеко, будет так:

$ saeko_regard += 1

 

Надо из 4-х переменных, выбрать наибольшее значение и на основе этого будет выбрана концовка. If/else не очень помогает. Как это сделать?

Опубликовано

Например так:

 

label choose_ending:
   if sae_regard > suzu_regard and sae_regard > eris_regard and sae_regard > sakur_regard:
       jump sae_ending
   elif suzu_regard > sae_regard and suzu_regard > eris_regard and suzu_regard > sakur_regard:
       jump suzu_ending
   elif eris_regard > sae_regard and eris_regard > suzu_regard and eris_regard > sakur_regard:
       jump eris_ending
   elif sakur_regard > sae_regard and sakur_regard > suzu_regard and sakur_regard > eris_regard:
       jump sakur_ending
   else:
       "Не могу выбрать..."
       return

label sae_ending:
   "и жили они с sae долго и счастливо..."
   return
label suzu_ending:
   и т.д.

Опубликовано

Например так:

 

label choose_ending:
   if sae_regard > suzu_regard and sae_regard > eris_regard and sae_regard > sakur_regard:
       jump sae_ending
   elif suzu_regard > sae_regard and suzu_regard > eris_regard and suzu_regard > sakur_regard:
       jump suzu_ending
   elif eris_regard > sae_regard and eris_regard > suzu_regard and eris_regard > sakur_regard:
       jump eris_ending
   elif sakur_regard > sae_regard and sakur_regard > suzu_regard and sakur_regard > eris_regard:
       jump sakur_ending
   else:
       "Не могу выбрать..."
       return

label sae_ending:
   "и жили они с sae долго и счастливо..."
   return
label suzu_ending:
   и т.д.

 

Спасибо, помогло :3

Опубликовано

Привет. В демо RenPy есть генератор случайных чисел. А можно сделать генератор реплик и случайное появление персонажа в комнате?

 

Генератор реплик - например, нпс говорит 1 из 10 (заранее определенных) фраз.

 

Случайное появление нпс - при входе игрока в комнату варианты - никого нет, либо 1 из 10 (заранее определенных) нпс.

 

 

Также интересует возможность занесения в журнал квестов от нпс (пойди/принеси) и вычеркивание после завершения квеста.

Опубликовано

Сделать можно все. Как вариант:

init:
   image char_a = "aaa.jpg"
   image char_b = "bbb.jpg"
   
   define a = Character("Aaa", color="#c00")
   define b = Character("Bbb", color="#ccc")

label start:
   label loop:
       # Оставить нужно один из вариантов кода - второй закомментировать
       # Вариант 1
       # Если нужно выбрать случайного персонажа, который произнесет фразу,
       # то выберем одного из перечня: (a, B) - кортеж, содержащий перечень NPC для выбора
       # (все персонажы должны быть заранее определены в блоке init
       # обе буквы a и b должны быть маленькие (не знаю почему b здесь вдруг становится большой, #@$%) !
       #$ rand_char = renpy.random.choice( (a, B) )
       
       # Вариант 2
       # Если нужно еще и показать на экране именно этого случайного персонажа, то немного усложним
       # в качестве аргумента для функции выбора зададим кортеж, каждый элемент которого представляет собой список
       # из персонажа и соответствующей ему картинки
       $ rand_var = renpy.random.choice( ([a, "char_a"], [b, "char_b"]) )
       # Далее используем выбранный список, для присвоения значений переменным
       $ rand_char = rand_var[0]
       $ rand_img = rand_var[1]
       # Покажем нашего случайного персонажа в случайной позиции
       $ rand_pos = renpy.random.choice ( (0.0, 0.5, 1.0) )
       show expression rand_img:
           xalign rand_pos
           yalign 1.0
       
       # Выберем случайную фразу
       $ rand_text = renpy.random.choice ( (u"Да...", u"...а я ему значит и говорю...", u"Проходи, не задерживайся.") )
       # Заставим нашего случйного персонажа ее сказать
       rand_char "[rand_text]"
       hide rand_img # уберем картинку с экрана, чтобы следующая не накладывалась на нее
       jump loop

 

 

Если вы организуете журнал квестов как список, то сможете добавлять в него новые элементы и удалять имеющиеся.

screen quests_scr:
   frame:
       background Solid("#ccc")
       xpos 0.1 ypos 0.1
       xminimum 200 xmaximum 200

       vbox:
           text "Журнал квестов" size 12 xalign 0.5
           null height 30
           for i in quests_list:
               text "- [i]" size 10
           null height 30
           
label start:
   # Создадим пустой список квестов
   $ quests_list = []
   show screen quests_scr
   "Журнал квестов пуст"
   # добавим квест в список, а потом сообщим об этом игроку
   $ quests_list.append("Квест 1")
   "Получен квест 1"
   $ quests_list.append("Квест 3")
   "Получен квест 3"
   $ quests_list.append("Квест 2")
   "Получен квест 2"
   # удалим выполненный квест
   $ quests_list.remove("Квест 1")
   "Выполнен квест 1"

 

 

Ссылки:

http://ru.wikibooks.....81.D0.BA.D0.B8

http://ru.wikibooks.....81.D1.82.D0.B8

http://ru.wikibooks.....BA.D0.B0.D1.85

http://www.renpy.org...ility_Functions (в самом низу страницы)

Опубликовано

Попробовал перевести документацию для Галереи изображений - кому интересно, просьба посмотреть на предмет опечаток и прочих ошибокrolleyes.gif

оригинал

 

 

 

Галерея изображений (ГИ)

 

ГИ - это экран, который позволяет игроку разблокировать изображения и затем просматривать эти изображения. Экран имеет одну или несколько связанных с ним кнопок, и каждая кнопка имеет одно или несколько связанных с ней изображений. Кнопки и изображения также имеют условия, которые определяют разблокированы они или нет.

 

ГИ управляются экземплярами класса Gallery. Каждый экземпляр класса может быть использован для нескольких экранов ГИ.

 

ГИ имеет одну или более кнопок, связанных с ней, кнопка имеет одно или более связанных с ней изображений, и каждое изображение имеет одну или более картинку, связанные с ним. Для кнопок и изображений могут быть назначены условия. Кнопка считается разблокированной, когда все назначенные для нее условия выполнены, и разблокировано хотя бы одно изображение, связанное с ней. Изображение считается разблокированным, когда все назначенные для него условия выполнены.

 

 

Создание ГИ происходит в четыре этапа.

 

1. Создание экземпляра класса Gallery.

2. Добавление кнопок и изображений в галерею, равно как и условий, определяющих будут ли кнопки и связанные с ними изображения считаться разблокированными. Этот процесс также состоит из нескольких этапов.

1. Объявление новой кнопки, путем вызова Gallery.button().

2. По желанию, назначение кнопке одного или более условий для разблокирования, путем вызова Gallery.unlock(), Gallery.condition(), или Gallery.allprior().

3. Объявление картинки, путем вызова Gallery.image() с одной или несколькими картинками в качестве аргумента. Или вызова более удобного метода Gallery.unlock_image().

4. По желанию, вызов Gallery.transform() для установки трансформаций, применяемых к каждой картинке.

5. По желанию, добавление одного или более условий, при выполнении которых изображение будет считаться разблокированным, путем вызова Gallery.unlock(),Gallery.condition(), или Gallery.allprior().

 

Дополнительные изображения могут быть добавлены к кнопке путем повторения этапов 3-5, а дополнительные кнопки – путем повторения всех пяти этапов.

 

3. Создание экрана галереи. Экран должен иметь фоновую картинку и какие-нибудь кнопки навигации, которые позволят пользователю посмотреть другие галереи или вернуться в главное либо дополнительное меню.

4. Добавление в главное ибо дополнительное меню кода для показа экрана галереи на дисплее.

 

Далее пример первых трех этапов:

init python:

   # Этап 1. Создаем объект галереи.
   g = Gallery()

   # Этап 2. Добавляем в галерею кнопки и изображения.

   # Кнопка, содержащая картинку, которая автоматически считается
   # разблокированной.
   g.button("dawn")
   g.image("dawn1")
   g.unlock("dawn1")

   # Эта кнопка имеет несколько связанных с ней картинок. Мы используем
   # unlock_image
   # так что нам не надо использовать оба .image и .unlock. Также, установим
   # трансформацию для первого изображения.
   g.button("dark")
   g.unlock_image("bigbeach1")
   g.transform(slowpan)
   g.unlock_image("beach1 mary")
   g.unlock_image("beach2")
   g.unlock_image("beach3")

   # Для следующих кнопок установлены условия, позволяющие
   # запрограммировать какое изображение считать разблокированным.
   g.button("end1")
   g.condition("persistent.unlock_1")
   g.image("transfer")
   g.image("moonpic")
   g.image("girlpic")
   g.image("nogirlpic")
   g.image("bad_ending")

   g.button("end2")
   g.condition("persistent.unlock_2")
   g.image("library")
   g.image("beach1 nomoon")
   g.image("bad_ending")

   # Для последних изображений в этих кнопках установлено условие,
   # так что они будут считаться разблокированными, только если пользователь
   # получит обе концовки.
   g.button("end3")
   g.condition("persistent.unlock_3")
   g.image("littlemary2")
   g.image("littlemary")
   g.image("good_ending")
   g.condition("persistent.unlock_3 and persistent.unlock_4")

   g.button("end4")
   g.condition("persistent.unlock_4")
   g.image("hospital1")
   g.image("hospital2")
   g.image("hospital3")
   g.image("heaven")
   g.image("white")
   g.image("good_ending")
   g.condition("persistent.unlock_3 and persistent.unlock_4")

   # Последние две кнопки содержат изображения, показывающие несколько
   # картинок одновременно.
   # Это можно использовать для показа картинки персонажа поверх фоновой
   # картинки.
   g.button("dawn mary")
   g.unlock_image("dawn1", "mary dawn wistful")
   g.unlock_image("dawn1", "mary dawn smiling")
   g.unlock_image("dawn1", "mary dawn vhappy")

   g.button("dark mary")
   g.unlock_image("beach2", "mary dark wistful")
   g.unlock_image("beach2", "mary dark smiling")
   g.unlock_image("beach2", "mary dark vhappy")

   # Установим перемещение (transition), которое будет использоваться при
   # смене изображений.
   g.transition = dissolve

# Этап 3. Создаем экран галереи.
screen gallery:

   # Убедимся, что он заменит собой главное меню.
   tag menu

   # Добавим фоновую картинку.
   add "beach2"

   # Сетка, состоящая из кнопок.
   grid 3 3:

       xfill True
       yfill True

       # Вызываем make_button для показа каждой кнопки.
       add g.make_button("dark", "gal-dark.png", xalign=0.5, yalign=0.5)
       add g.make_button("dawn", "gal-dawn.png", xalign=0.5, yalign=0.5)
       add g.make_button("end1", "gal-end1.png", xalign=0.5, yalign=0.5)

       add g.make_button("end2", "gal-end2.png", xalign=0.5, yalign=0.5)
       add g.make_button("end3", "gal-end3.png", xalign=0.5, yalign=0.5)
       add g.make_button("end4", "gal-end4.png", xalign=0.5, yalign=0.5)

       add g.make_button("dark mary", "gal-dark_mary.png", xalign=0.5, yalign=0.5)
       add g.make_button("dawn mary", "gal-dawn_mary.png", xalign=0.5, yalign=0.5)

       # Экран, отвечающий за возврат в главное меню. Также, он может
       # перенаправлять на другой экран галереи.
       textbutton "Return" action Return() xalign 0.5 yalign 0.5

Этап 4 варьируется в зависимости от того, как структурирована ваша игра, один из вариантов – добавить следующую строку:

textbutton "Gallery" action ShowMenu("gallery")

в код экрана главного меню.

 

class Gallery(self)

Этот класс предоставляет возможность создавать ГИ, обслуживая блокировку изображений, предоставляя действие, которое может показать одно или более изображений, и предоставляя метод, который создает кнопки, использующие это действие.

 

transition

Перемещение (transition), которое используется при смене изображений.

 

locked_button

Картинка, используемая make_button по умолчанию для заблокированных кнопок.

 

hover_border

Активная рамка, которую по умолчанию использует make_button.

 

idle_border

Неактивная рамка, которую по умолчанию использует make_button.

 

Action(name)

Действие, которое показывает изображения, связанные с указанной кнопкой.

 

allprior(self)

Условие, которое считается выполненным, если были разблокированы все предыдущие изображения, связанные с данной кнопкой.

 

button(name)

Создает новую кнопку с названием name.

name

 

Название создаваемой кнопки.

 

 

condition(expression)

Условие, которое считается выполненным, если выражение (expression) имеет значение Истина (True).

expression

Строка – выражение на языке python.

 

display(*displayables)

Добавляет в текущую кнопку новое изображение, содержащее одну или более картинку (displayables).

 

image(*displayables)

Добавляет в текущую кнопку новое изображение, содержащее одну или более картинку (displayables).

 

make_button(name, unlocked, locked=None, hover_border=None, idle_border=None, **properties)

Создает кнопку, которая показывает изображения, связанные с данным названием кнопки.

name

Название создаваемой кнопки.

unlocked

Картинка, которая отображается, когда кнопка разблокирована.

locked

Картинка, которая отображается, когда кнопка заблокирована. Если не задано, то вместо нее используется поле locked_button объекта галереи.

hover_border

Картинка, которая отображается поверх разблокированной кнопки, когда на нее наведен курсор. Если не задано, то используется поле hover_border объекта галереи.

idle_border

Картинка, которая отображается поверх разблокированной кнопки, когда на нее не наведен курсор. Если не задано, то используется поле idle_border объекта галереи.

Дополнительные ключевые аргументы становятся параметрами стиля создаваемого объекта кнопки.

 

transform(*transforms)

Применяет трансформации (transforms) к последнему зарегистрированному изображению. Должен вызываться с тем же количеством трансформаций, сколько картинок связано с изображением. Трансформации применяются к соответствующим картинкам.

 

Если трансформация не задана, то используется трансформация

по умолчанию.

 

unlock(*images)

Условие, которое содержит одно или более названия изображений и считается выполненным, если игрок видел все названные

изображения. Названия изображений должны быть заданы в строковом формате (as strings).

 

unlock_image(*images)

Удобный метод, который является эквивалентом вызова image и unlock с одинаковыми параметрами. Он позволяет показать изображение, если оно уже было увидено ранее.

 

(images) должно быть определено в строковом формате, задавая названия изображений.

Опубликовано

И вот ещё куча не понятного:

 

    g.button("dawn")
   g.image("dawn1")
   g.unlock("dawn1")

 

Где пути к файлам этих кнопок?

В конце есть только для dawn, а для dawn1 нету)

 

Где прописывать пути для каждой картинки? Вот там куча всяких transfer, moonpic, girlpic, heaven и тд. Где они объявляются?)

Запутанно вопщем)

Опубликовано

Код можно добавить в любой файл с расширением rpy - для удобства можно создать отдельный файл (Рен'пи обрабатывает все файлы с таким расширением как один большой файл).

Первые два этапа - в блоке init (такой блок может быть в каждом rpy-файле), третий этап - создание экрана (screen) с использованием полного функционала SL (screen language), т.е. можно использовать сетку (grid), можно поместить кнопки в боксы (vbox, hbox), можно использовать viewport, можно позиционировать каждую кнопку в отдельности - как удобнее.

http://www.renpy.org/doc/html/screens.html

Опубликовано (изменено)

И вот ещё куча не понятного:

 

    g.button("dawn")
   g.image("dawn1")
   g.unlock("dawn1")

 

Где пути к файлам этих кнопок?

В конце есть только для dawn, а для dawn1 нету)

 

Где прописывать пути для каждой картинки? Вот там куча всяких transfer, moonpic, girlpic, heaven и тд. Где они объявляются?)

Запутанно вопщем)

 

Кхм, здесь много полезного.

В данном случае используются не сами файлы, а заранее объявленные картинки (displayable). Объявление картинок, персонажей и проч. производится в блоке init.

В вашем примере:

g.button("dawn") - создает кнопку с названием "dawn"

g.image("dawn1") - связывает с этой кнопкой заранее объявленную картинку "dawn1"

g.unlock("dawn1") - говорит о том, что никаких условий для разблокировки картинки нет - она будет доступна, если игрок видел ее в игре

add g.make_button("dawn", "gal-dawn.png", xalign=0.5, yalign=0.5) - добавляет на экран заранее созданную кнопку с названием "dawn", при этом на экране будет показано маленькое изображение "gal-dawn.png"

 

Т.о. в блок init должны быть добавлены объявления всех картинок (предполагается, что для игры вы уже сделали объявления всех фоновых картинок и картинок персонажей), а также созданы используемые в галерее трансформации (в примере это slowpan).

transform slowpan:
   yalign 1.0
   linear 4.0 yalign 0.0

Для объявления трансформации никакие блоки не нужны и отступ от левого края экрана можно не делать.

Немного ранее был сделан перевод руководства по ATL - там написано про трансформации - http://renpyru.blogs.../renpy-atl.html

 

http://www.renpy.org/wiki/renpy/rus

 

Изменено пользователем Алекс__ (смотреть историю редактирования)
Опубликовано

Спасибо)

Я в принципе знаю, что фоны и картинки персонажей объявляются в init, просто тут не написано о том, что пути к файлам кнопок, тоже надо объявлять там.

 

"Созданы трансформации" - это в каком смысле?) Что-то вроде заглушек нарисовать? Или эффекты перехода? Зачем их создавать, если они уже созданы тут в коде галереи?)

Опубликовано

"Созданы трансформации" - это в каком смысле?) Что-то вроде заглушек нарисовать? Или эффекты перехода? Зачем их создавать, если они уже созданы тут в коде галереи?)

 

Да, трансформации - это эффекты, которые могут быть применены к разным объектам и к картинкам в том числе. В коде галереи они не созданы, но в одном месте кода используется трансформация slowpan

g.transform(slowpan)

эта трансформация должна быть создана заранее.

Опубликовано

Да, трансформации - это эффекты, которые могут быть применены к разным объектам и к картинкам в том числе. В коде галереи они не созданы, но в одном месте кода используется трансформация slowpan

g.transform(slowpan)

эта трансформация должна быть создана заранее.

 

А можно просто чтобы обычный плавный переход и всё? Для этого что нужно?)

Весь этот язык атл и прочее, это уже какие-то дебри, я не понимаю для чего это всё нужно.

 

Странный вообще получается гайд, по которому не сделаешь галерею) Только для одной этой строчки с трансформации, что-то нужно создавать в атл, читая стену кода.

Опубликовано (изменено)

Просто удалите строку

g.transform(slowpan)

 

 

Она приведена в примере для того, чтобы показать все возможности галереи (использовать их не обязательно).

Изменено пользователем Алекс__ (смотреть историю редактирования)

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...

Важная информация