Элионт Опубликовано 26 августа, 2012 Жалоба Опубликовано 26 августа, 2012 (изменено) либо очень много разбираться.А ещё лучше если ты выучишь (достаточно начального уровня) язык программирования Python версии 2.7, это несложно - он самый лёгкий из существующих. Документации на русском море.Это позволит использовать все продвинутые фишки RenPy (Renai + Python, если не знал), а не спрашивать из-за каждой мелочи. UPD - Дорогу осилит идущий. Изменено 26 августа, 2012 пользователем Элионт (смотреть историю редактирования) Цитата
Gurvold Опубликовано 30 августа, 2012 Жалоба Опубликовано 30 августа, 2012 Всем привет!У меня такой вопрос есть: как сделать cg комнату? http://www.renpy.org/doc/html/rooms.htmlНасколько я помню, одна девушка уже задавала такой вопрос, но он повис в воздухе. Может кто сможет растолковать подробно, а то я так и не смог разобраться. Желательно для версии 6.9.3Смотрел как это сделать на английском и не все понял. Цитата
Helen Shwiger Опубликовано 31 августа, 2012 Жалоба Опубликовано 31 августа, 2012 У меня такой вопрос есть: как сделать cg комнату? http://www.renpy.org...html/rooms.htmlЖелательно для версии 6.9.3 Мне тоже интересно, но для 6.14.Только для старых версий вроде вот этот гайд нужен. Цитата
Gurvold Опубликовано 31 августа, 2012 Жалоба Опубликовано 31 августа, 2012 Мне тоже интересно, но для 6.14.Только для старых версий вроде вот этот гайд нужен.Спасибо за подсказку. Попытаюсь разобраться))) Цитата
Алекс__ Опубликовано 2 сентября, 2012 Жалоба Опубликовано 2 сентября, 2012 Мне тоже интересно, но для 6.14.Так по ссылке и указано как сделать галерею. Вот если есть более конкретный вопрос - что не работает или не совсем понятно, то задавайте. Цитата
Gurvold Опубликовано 2 сентября, 2012 Жалоба Опубликовано 2 сентября, 2012 Так по ссылке и указано как сделать галерею. Вот если есть более конкретный вопрос - что не работает или не совсем понятно, то задавайте.Был задан конкретный вопрос: Кто сможет растолковать подробно? Или нужен "чисто конкретный" вопрос? По этим ссылкам очень трудно понять, что делать. Какой размер изображений использовать для кнопок или рамок, например. Просто фон или с кнопками. Там много вопросов, потому и была просьба: растолковать подробно! Нет смысла рассматривать отдельные моменты, считаю, там нужно решать вопрос комплексно. Цитата
Gurvold Опубликовано 3 сентября, 2012 Жалоба Опубликовано 3 сентября, 2012 Я тут недавно разбирал старые диски с программами и наткнулся на интересную штуку.http://narod.ru/disk/60425264001.eb7ea279a646b404713e1b2a51c97729/FL.rar.htmlПри помощи этой программки я смог сделать музыку для одной из своих игрушек. Она на английском. Там можно создавать как свою музыку, так и обрабатывать уже готовые шаблоны. Может, кому пригодится. Цитата
Алекс__ Опубликовано 5 сентября, 2012 Жалоба Опубликовано 5 сентября, 2012 Был задан конкретный вопрос: Кто сможет растолковать подробно? Или нужен "чисто конкретный" вопрос? По этим ссылкам очень трудно понять, что делать. Какой размер изображений использовать для кнопок или рамок, например. Просто фон или с кнопками. Там много вопросов, потому и была просьба: растолковать подробно! Нет смысла рассматривать отдельные моменты, считаю, там нужно решать вопрос комплексно.C "чисто конкретными" вопросами вы не по адресуВо многом может помочь гугл-переводчик. Иногда бывает, что необходимо пояснить отдельные моменты - это сделать быстрее и проще. Если необходимо пояснить все и подробно - займет чуть больше времени.Здесь полный код, который необходим для примера галереи (картинки, правда, вам придется сделать самостоятельно)# Сначала надо скачать файл 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 Цитата
Gurvold Опубликовано 6 сентября, 2012 Жалоба Опубликовано 6 сентября, 2012 C "чисто конкретными" вопросами вы не по адресуВо многом может помочь гугл-переводчик. Иногда бывает, что необходимо пояснить отдельные моменты - это сделать быстрее и проще. Если необходимо пояснить все и подробно - займет чуть больше времени.Здесь полный код, который необходим для примера галереи (картинки, правда, вам придется сделать самостоятельно) Спасибо за подробный ответ. Постараюсь разобраться. Я и сам переводил. Только ничего не получалось. Не работала галерея и все тут. Я создал свой блог: http://gurvold.blogspot.com/Если есть желание, можете посетить. Там же можно скачать мою самую первую игру на Ren'Py. Мне повезло, я рисовать не умею, а художник Mongo разрешил использовать его картинки. Правда рисунки у него, весьма специфического содержания. Детям не достигшим 18-ти летнего возраста скачивать игру не разрешаю! Цитата
Gurvold Опубликовано 6 сентября, 2012 Жалоба Опубликовано 6 сентября, 2012 C "чисто конкретными" вопросами вы не по адресуВо многом может помочь гугл-переводчик. Иногда бывает, что необходимо пояснить отдельные моменты - это сделать быстрее и проще. Если необходимо пояснить все и подробно - займет чуть больше времени. Огромное спасибо! Все работает!!! Я тут сделал небольшой образец работающей галереи. Было много людей, которые хотели узнать, как она работает. Ребята, можете скачать из моего блога по ссылке на народ.http://gurvold.blogspot.com/2012/09/cg.html 1 Цитата
Helen Shwiger Опубликовано 10 сентября, 2012 Жалоба Опубликовано 10 сентября, 2012 У меня тут несколько развилок, где выбор пункта меню, добавляет разным персонажам отношение.Например есть переменные:sae_regard, suzu_regard, eris_regard, sakur_regard При выборе пункта меню относящегося к персонажу Саеко, будет так:$ saeko_regard += 1 Надо из 4-х переменных, выбрать наибольшее значение и на основе этого будет выбрана концовка. If/else не очень помогает. Как это сделать? Цитата
Алекс__ Опубликовано 10 сентября, 2012 Жалоба Опубликовано 10 сентября, 2012 Например так: 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: и т.д. Цитата
Helen Shwiger Опубликовано 10 сентября, 2012 Жалоба Опубликовано 10 сентября, 2012 Например так: 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 Цитата
FROSTBERN Опубликовано 13 сентября, 2012 Жалоба Опубликовано 13 сентября, 2012 Привет. В демо RenPy есть генератор случайных чисел. А можно сделать генератор реплик и случайное появление персонажа в комнате? Генератор реплик - например, нпс говорит 1 из 10 (заранее определенных) фраз. Случайное появление нпс - при входе игрока в комнату варианты - никого нет, либо 1 из 10 (заранее определенных) нпс. Также интересует возможность занесения в журнал квестов от нпс (пойди/принеси) и вычеркивание после завершения квеста. Цитата
Алекс__ Опубликовано 14 сентября, 2012 Жалоба Опубликовано 14 сентября, 2012 Сделать можно все. Как вариант: 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.B8http://ru.wikibooks.....81.D1.82.D0.B8http://ru.wikibooks.....BA.D0.B0.D1.85http://www.renpy.org...ility_Functions (в самом низу страницы) Цитата
FROSTBERN Опубликовано 14 сентября, 2012 Жалоба Опубликовано 14 сентября, 2012 Огромное спасибо! Кстати, искал русский хелп по питону, не нашел... Буду изучать ссылки. ) Цитата
Алекс__ Опубликовано 14 сентября, 2012 Жалоба Опубликовано 14 сентября, 2012 Попробовал перевести документацию для Галереи изображений - кому интересно, просьба посмотреть на предмет опечаток и прочих ошибокоригинал Галерея изображений (ГИ) ГИ - это экран, который позволяет игроку разблокировать изображения и затем просматривать эти изображения. Экран имеет одну или несколько связанных с ним кнопок, и каждая кнопка имеет одно или несколько связанных с ней изображений. Кнопки и изображения также имеют условия, которые определяют разблокированы они или нет. ГИ управляются экземплярами класса 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) должно быть определено в строковом формате, задавая названия изображений. 1 Цитата
Helen Shwiger Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 Не совсем понятно) Например, добавление кода первых трёх этапов происходит куда? В screens.rpy? Цитата
Helen Shwiger Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 И вот ещё куча не понятного: g.button("dawn") g.image("dawn1") g.unlock("dawn1") Где пути к файлам этих кнопок?В конце есть только для dawn, а для dawn1 нету) Где прописывать пути для каждой картинки? Вот там куча всяких transfer, moonpic, girlpic, heaven и тд. Где они объявляются?)Запутанно вопщем) Цитата
Алекс__ Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 Код можно добавить в любой файл с расширением rpy - для удобства можно создать отдельный файл (Рен'пи обрабатывает все файлы с таким расширением как один большой файл).Первые два этапа - в блоке init (такой блок может быть в каждом rpy-файле), третий этап - создание экрана (screen) с использованием полного функционала SL (screen language), т.е. можно использовать сетку (grid), можно поместить кнопки в боксы (vbox, hbox), можно использовать viewport, можно позиционировать каждую кнопку в отдельности - как удобнее.http://www.renpy.org/doc/html/screens.html Цитата
Алекс__ Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 (изменено) И вот ещё куча не понятного: 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 Изменено 15 сентября, 2012 пользователем Алекс__ (смотреть историю редактирования) Цитата
Helen Shwiger Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 Спасибо)Я в принципе знаю, что фоны и картинки персонажей объявляются в init, просто тут не написано о том, что пути к файлам кнопок, тоже надо объявлять там. "Созданы трансформации" - это в каком смысле?) Что-то вроде заглушек нарисовать? Или эффекты перехода? Зачем их создавать, если они уже созданы тут в коде галереи?) Цитата
Алекс__ Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 "Созданы трансформации" - это в каком смысле?) Что-то вроде заглушек нарисовать? Или эффекты перехода? Зачем их создавать, если они уже созданы тут в коде галереи?) Да, трансформации - это эффекты, которые могут быть применены к разным объектам и к картинкам в том числе. В коде галереи они не созданы, но в одном месте кода используется трансформация slowpang.transform(slowpan)эта трансформация должна быть создана заранее. Цитата
Helen Shwiger Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 Да, трансформации - это эффекты, которые могут быть применены к разным объектам и к картинкам в том числе. В коде галереи они не созданы, но в одном месте кода используется трансформация slowpang.transform(slowpan)эта трансформация должна быть создана заранее. А можно просто чтобы обычный плавный переход и всё? Для этого что нужно?)Весь этот язык атл и прочее, это уже какие-то дебри, я не понимаю для чего это всё нужно. Странный вообще получается гайд, по которому не сделаешь галерею) Только для одной этой строчки с трансформации, что-то нужно создавать в атл, читая стену кода. Цитата
Алекс__ Опубликовано 15 сентября, 2012 Жалоба Опубликовано 15 сентября, 2012 (изменено) Просто удалите строкуg.transform(slowpan) Она приведена в примере для того, чтобы показать все возможности галереи (использовать их не обязательно). Изменено 15 сентября, 2012 пользователем Алекс__ (смотреть историю редактирования) Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.