Вопросы-ответы по RenPy
- GameMaker174
- Сообщений: 37
- Зарегистрирован: 24 ноя 2015, 17:55
- Откуда: Челябинск
Re: Вопросы-ответы по RenPy
Эм...такой вопрос возник, можно ли добавить картинку персонажа сразу в init, так что бы картинка персонажа, сразу вставлялась в текст???что бы не писать каждый раз точто перс появляется на фоне спасибо за ответ заранее)))
Re: Вопросы-ответы по RenPy
Вопрос сформулирован непонятно.
Напишите подробнее чего хотите и приведите пример кода.
Напишите подробнее чего хотите и приведите пример кода.
Re: Вопросы-ответы по RenPy
Здравствуйте, решил чисто для себя попробовать RenPy, ну и попробовать силы решил в русификации Академии Эшворда. Скачал и установил RenPy, редактором скриптов открыл скрипт "achievements.rpy" и попробовал перевести текстовые сообщения. Получил файл скрипта такого вида.
Сохранив скрипт попробовал запустить игру и получил следующую ошибку:
Насколько я из сообщения понял, игра ругается на кодировку "UTF8", видимо весь введённый мной в скрипт русский текст отображается именно в ней. Возникает вопрос, куда посмотреть, где почитать и что добавить, чтобы игра увидела русские буквы.
Сохранив скрипт попробовал запустить игру и получил следующую ошибку:
Насколько я из сообщения понял, игра ругается на кодировку "UTF8", видимо весь введённый мной в скрипт русский текст отображается именно в ней. Возникает вопрос, куда посмотреть, где почитать и что добавить, чтобы игра увидела русские буквы.
Re: Вопросы-ответы по RenPy
Vitamin05 писал(а):Здравствуйте, решил чисто для себя попробовать RenPy, ну и попробовать силы решил в русификации Академии Эшворда. Скачал и установил RenPy, редактором скриптов открыл скрипт "achievements.rpy" и попробовал перевести текстовые сообщения. Получил файл скрипта такого вида.
Сохранив скрипт попробовал запустить игру и получил следующую ошибку:
Насколько я из сообщения понял, игра ругается на кодировку "UTF8", видимо весь введённый мной в скрипт русский текст отображается именно в ней. Возникает вопрос, куда посмотреть, где почитать и что добавить, чтобы игра увидела русские буквы.
Необходимо изменить саму кодировку файла на UTF8.
После перевода могут появиться артефакты в коде, их надо будет необходимо устранить.
Re: Вопросы-ответы по RenPy
Как сделать заставку, которая автоматически включалась бы перед стартовым меню?
Re: Вопросы-ответы по RenPy
Прошу прощения за беспокойство. Сам разобрался.
Re: Вопросы-ответы по RenPy
Помогите!
В общем делаю вот так - стоит выбор,2 локации. и эти 2 локации нам нужно посетить.
1 лок - душ
2 лок - туалет.
Как сделать так,чтобы если мы пошли сначала в душ,а потом в туалет,в туалете не выпадало опять меню "в душ"?
Так же и наоборот
В общем делаю вот так - стоит выбор,2 локации. и эти 2 локации нам нужно посетить.
1 лок - душ
2 лок - туалет.
Как сделать так,чтобы если мы пошли сначала в душ,а потом в туалет,в туалете не выпадало опять меню "в душ"?
Так же и наоборот
Re: Вопросы-ответы по RenPy
SmoOke писал(а):Как сделать так,чтобы если мы пошли сначала в душ,а потом в туалет,в туалете не выпадало опять меню "в душ"?
Так же и наоборот
Пример кода в студию.
Re: Вопросы-ответы по RenPy
С уважением и надеждой, здравствуйте.
Здесь разобраться самостоятельно как-то не получается.
Дело вот в чём.
Картинки объявлены правильно, потому что как изображения они нормально отображаются. Но только прописываешь их в анимацию, программа говорит, что файлы не загружаемые.
Помогите, если не трудно.
Здесь разобраться самостоятельно как-то не получается.
Дело вот в чём.
Картинки объявлены правильно, потому что как изображения они нормально отображаются. Но только прописываешь их в анимацию, программа говорит, что файлы не загружаемые.
Помогите, если не трудно.
Re: Вопросы-ответы по RenPy
Prohogiy писал(а):Картинки объявлены правильно, потому что как изображения они нормально отображаются. Но только прописываешь их в анимацию, программа говорит, что файлы не загружаемые.
Помогите, если не трудно.
Оставляя подобные сообщение, добавляйте
а) Код, который работает
б) Код, который не работает.
в) Текст ошибки
Re: Вопросы-ответы по RenPy
Прошу прощения. Сейчас исправлюсь.
Когда показываешь картинку
scene bg blak
show star28 at Position(xpos=.5, ypos=.5, xanchor=0, yanchor=0)
всё работает.
Стоит прописать самую простую анимацию, вот так:
image star1a = Animation(
"star6.png", 1.0,
"star16.png", 1.0,
"star28.png", 1.0)
выдаёт ошибку:
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star6.png', which is not loadable.
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star16.png', which is not loadable.
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star28.png', which is not loadable.
Когда показываешь картинку
scene bg blak
show star28 at Position(xpos=.5, ypos=.5, xanchor=0, yanchor=0)
всё работает.
Стоит прописать самую простую анимацию, вот так:
image star1a = Animation(
"star6.png", 1.0,
"star16.png", 1.0,
"star28.png", 1.0)
выдаёт ошибку:
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star6.png', which is not loadable.
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star16.png', which is not loadable.
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star28.png', which is not loadable.
Re: Вопросы-ответы по RenPy
Prohogiy писал(а):Прошу прощения. Сейчас исправлюсь.
Когда показываешь картинку
scene bg blak
show star28 at Position(xpos=.5, ypos=.5, xanchor=0, yanchor=0)
всё работает.
Стоит прописать самую простую анимацию, вот так:
image star1a = Animation(
"star6.png", 1.0,
"star16.png", 1.0,
"star28.png", 1.0)
выдаёт ошибку:
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star6.png', which is not loadable.
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star16.png', which is not loadable.
C:\Tor\renpy-6.9.3-rus\Itana/game/script.rpy:36 Image star1a uses file 'star28.png', which is not loadable.
Возможно я не прав, но у вас наверное картинки star6.png и т.п. лежат не в папке game, а где-то в подпапках ? Потому что обычно такое сообщение возникает при неправильном пути к изображению. Путь считается относительно папки game. А в первом примере путь как раз не задается, там вызывается уже описанное в другом месте (с правильным путем) изображение.
В любом деле главное - творческий подход.
Re: Вопросы-ответы по RenPy
Вы совершенно правы. Огромное спасибо!
Просто в демке никак не видно, что для анимации нужно прописывать полный путь к картинке.
Теперь возник другой вопрос.
А можно ли сделать, чтобы заставка, сделанная с помощью label splashscreen, при первом запуске игры была не кликабельна, то есть не выключалась при нажатии на кнопку мыши? А при последующих запусках выключалась, чтобы не грузить пользователя повторными просмотрами.
И ещё. Последняя версия RenPy у меня тоже есть, но она глючит. Не отображаются переходы. Вместо них экран в клеточку. Я думаю, что это из-за слабости компа. Процессор: два ядра по 1,6 ГГц (нетбук). Или могут быть другие причины?
Просто в демке никак не видно, что для анимации нужно прописывать полный путь к картинке.
Теперь возник другой вопрос.
А можно ли сделать, чтобы заставка, сделанная с помощью label splashscreen, при первом запуске игры была не кликабельна, то есть не выключалась при нажатии на кнопку мыши? А при последующих запусках выключалась, чтобы не грузить пользователя повторными просмотрами.
И ещё. Последняя версия RenPy у меня тоже есть, но она глючит. Не отображаются переходы. Вместо них экран в клеточку. Я думаю, что это из-за слабости компа. Процессор: два ядра по 1,6 ГГц (нетбук). Или могут быть другие причины?
Re: Вопросы-ответы по RenPy
Прошу прощения, если слишком много спрашиваю, но когда очень хочется освоить эту программу, вопросы сыпятся, как из рога изобилия.
Поэтому буду спрашивать.
1. SMAnimation работает только с цветом фона, как в демке, или может работать и с другими объектами? Например, с картинками.
2. Короткая анимация (около 1,5 с) появляется в случайном месте экрана.
$ gtms1 = renpy.random.randint(1, 948)
$ gtms2 = renpy.random.randint(1, 568)
show star1b at Position(xpos=gtms1, ypos=gtms2, xanchor=0.5, yanchor=0.5)
Как это зациклить, чтобы для каждой новой прокрутки генерировалось новое местоположение?
Поэтому буду спрашивать.
1. SMAnimation работает только с цветом фона, как в демке, или может работать и с другими объектами? Например, с картинками.
2. Короткая анимация (около 1,5 с) появляется в случайном месте экрана.
$ gtms1 = renpy.random.randint(1, 948)
$ gtms2 = renpy.random.randint(1, 568)
show star1b at Position(xpos=gtms1, ypos=gtms2, xanchor=0.5, yanchor=0.5)
Как это зациклить, чтобы для каждой новой прокрутки генерировалось новое местоположение?
Re: Вопросы-ответы по RenPy
Prohogiy писал(а):2. Короткая анимация (около 1,5 с) появляется в случайном месте экрана.
$ gtms1 = renpy.random.randint(1, 948)
$ gtms2 = renpy.random.randint(1, 568)
show star1b at Position(xpos=gtms1, ypos=gtms2, xanchor=0.5, yanchor=0.5)
Как это зациклить, чтобы для каждой новой прокрутки генерировалось новое местоположение?
Насколько я понял, вам нужен оператор цикла.
Почитайте про цикл while здесь:
http://www.renpy.org/doc/html/conditional.html
Re: Вопросы-ответы по RenPy
Кстати, побуду КО, если в курсе.
Но файл script.rpy можно здорово разгрузить, разбив на множество под файлов, по крайне мере вытащить инициализацию картинок в отдельный файл.
Но файл script.rpy можно здорово разгрузить, разбив на множество под файлов, по крайне мере вытащить инициализацию картинок в отдельный файл.
Re: Вопросы-ответы по RenPy
Если у кого-нить идея, как лучше реализовать систему ивентов? Чтобы она была понятной и не сложной. Та, что в Тренере Ведьм, как то выглядит не совсем понятно, либо я не уловил всей её сути.
Re: Вопросы-ответы по RenPy
tukreb писал(а):Если у кого-нить идея, как лучше реализовать систему ивентов? Чтобы она была понятной и не сложной. Та, что в Тренере Ведьм, как то выглядит не совсем понятно, либо я не уловил всей её сути.
Система ивентов в Тренере ведьмы действительно нетривиальна. Достоинство ее в том, что можно задать условия выполнения ивентов большой сложности. Например:
Исполнить ивент А только в том случае, если распущенность Гермионы между 6 и 9, при этом не выполнен ивент С, а ивент В выполнен хотя бы трижды, но с момента его последнего выполнения прошло не больше суток игрового времени.
Исполнить ивент А два только раза, второй раз можно исполнить только если после первого исполнения прошло больше двух суток игрового времени.
Условия выполнения всех ивентов описаны в одной секции, что довольно наглядно, есть система разрешения конфликтов (если одновременно наступают условия выполнения двух ивентов) и пр.
Из-за такой навороченности пользоваться ей без подробного описания классов вряд ли получится.
Если нужно что-то совсем простое, можно предложить систему, которой пользовался Акабур. На каждый ивент по одному или несколько флажков (флажок - логическая или целая переменная). После выполнения ивента флажок меняется.
Чтобы не таскать кучу флажков все это можно запихнуть в единый словарь. Если посмотреть реализацию системы ивентов в Ведьме, то, грубо говоря, там так и сделано, а для работы со словарем состояний ивентов написаны классы.
Re: Вопросы-ответы по RenPy
Skaz писал(а):tukreb писал(а):Если у кого-нить идея, как лучше реализовать систему ивентов? Чтобы она была понятной и не сложной. Та, что в Тренере Ведьм, как то выглядит не совсем понятно, либо я не уловил всей её сути.
Система ивентов в Тренере ведьмы действительно нетривиальна. Достоинство ее в том, что можно задать условия выполнения ивентов большой сложности. Например:
Исполнить ивент А только в том случае, если распущенность Гермионы между 6 и 9, при этом не выполнен ивент С, а ивент В выполнен хотя бы трижды, но с момента его последнего выполнения прошло не больше суток игрового времени.
Исполнить ивент А два только раза, второй раз можно исполнить только если после первого исполнения прошло больше двух суток игрового времени.
Условия выполнения всех ивентов описаны в одной секции, что довольно наглядно, есть система разрешения конфликтов (если одновременно наступают условия выполнения двух ивентов) и пр.
Из-за такой навороченности пользоваться ей без подробного описания классов вряд ли получится.
Если нужно что-то совсем простое, можно предложить систему, которой пользовался Акабур. На каждый ивент по одному или несколько флажков (флажок - логическая или целая переменная). После выполнения ивента флажок меняется.
Чтобы не таскать кучу флажков все это можно запихнуть в единый словарь. Если посмотреть реализацию системы ивентов в Ведьме, то, грубо говоря, там так и сделано, а для работы со словарем состояний ивентов написаны классы.
Частично я разобрался в сути, и уже заметил некоторые удобные возможности в условиях, но есть некоторые сложности в частности, я не понимаю, почему не идёт на True, если я правильно понял, как работает это
Код: Выбрать все
this.Where({"DAY"}) .AddStep("begin_01:test-true", ready= lambda e: day == 5 )
Далее
Код: Выбрать все
label begin_01:
m "Хм....."
m "Хмхмхм.."
menu:
" True " if this.Has("test-true"):
m "test-true is True"
" False ":
m "test-true is False"
$this.begin_01.Finalize()
jump night_start
В данном случае всегда получается False, что я упустил, если у Вас есть идеи?
Re: Вопросы-ответы по RenPy
А уже всё понял как это работает, если кому интересно, то этот код всё объяснит
После выполнения begin_01 и его завершение, на флаг test-true выставиться true.
и правда это избавляет от ненужный переменных в дальнейшем.
Код: Выбрать все
this.Where({"DAY"}) .AddStep("begin_01:test-true", ready= lambda e: day == 5 )
this .AddStep("begin_00", ready= lambda e: day == 6 )
После выполнения begin_01 и его завершение, на флаг test-true выставиться true.
Код: Выбрать все
label begin_00:
m "Хм....."
m "Хм....Хм....."
menu:
" True " if this.Has("test-true"):
m "test-true is True"
" False ":
m "test-true is False"
$this.begin_00.Finalize()
jump night_start
label begin_01:
m "Хм....."
m "Хм....Хм....."
menu:
" True " if this.Has("test-true"):
m "test-true is True"
" False ":
m "test-true is False"
$this.begin_01.Finalize()
jump night_start
и правда это избавляет от ненужный переменных в дальнейшем.
Re: Вопросы-ответы по RenPy
tukreb писал(а):А уже всё понял как это работает, если кому интересно, то этот код всё объяснит
Энтузиазм радует.
В качестве подарка:
Можно сделать еще более изящно.
Код: Выбрать все
this.Where({"DAY"}) .AddStep("begin_01", ready= lambda e: day == 5 )
this .AddStep("begin_00", ready= lambda e: day == 6 )
Код: Выбрать все
label begin_00:
m "Хм....."
m "Хм....Хм....."
menu:
" True " if this.begin_01.IsDone():
m "test-true is True"
" False ":
m "test-true is False"
wtevent.Finalize("night_start")
Ну и т.п.
Re: Вопросы-ответы по RenPy
Спасибо, осталось только разобраться, как определить $wtevent., чтобы она заработала, а то лишь объявлена.
В моей случае, пока проще заменить на это $this.begin_00.Finalize("night_start") Пока не могу разобраться с $wtevent
В моей случае, пока проще заменить на это $this.begin_00.Finalize("night_start") Пока не могу разобраться с $wtevent
Re: Вопросы-ответы по RenPy
tukreb писал(а):В моей случае, пока проще заменить на это $this.begin_00.Finalize("night_start")
Да, думаю, в новом проекте так будет проще.
Re: Вопросы-ответы по RenPy
Глупости написал Потом перефразирую может быть. (можно удалить это сообщение)
Re: Вопросы-ответы по RenPy
нужно сделать кнопку удалить или уберите ограничение с редактирование А то, плодятся сообщения. Я всё мучаю $wtevent.Finalize пытаясь понять секрет, как его заставить заработать
Вернуться в «Разработка игр на RenPy»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость