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

Алекс__

Активные участники
  • Постов

    186
  • Зарегистрирован

  • Посещение

Весь контент Алекс__

  1. http://lemmasoft.ren...3&hilit=textbox http://lemmasoft.ren...t=9812&p=127872 Здесь превосходные руководства по настройке внешнего вида игры, они конечно на английском, но с примерами кода и картинками (все очень доступно и в большом количестве)...))
  2. http://www.animeforu...dpost&p=2619530 Суть в том, чтобы сравнить введенное значение со значением заранее определенной переменной (отгадки) - если значения совпадут, то отгадали, если нет, то...
  3. @Айон XIV, а какое сообщение об ошибке (ну, так - просто интересно)?
  4. Ммм, хорошо... Руководство вы прочитали... вот еще ссылка на пояснение: что же такое блоки и как правильно делать отступы (на английском, за-то с картинкой) http://www.renpy.org...t_are_blocks.3F Еще полезные ссылки (правда, тоже на английском) с примерами кода: http://www.renpy.org/wiki/renpy/FAQ http://www.renpy.org...eference_Manual http://www.renpy.org...html/index.html Теперь ваш код и ошибки. Рен'пи всегда говорит в какой строке он находит ошибку и что именно ему не нравится - это здорово облегчает исправление ошибок. Здесь примерное описание возможных ошибок http://www.animeforu...dpost&p=2689628 $ e = Character(u'Сомокава', color="#c8ffc8". show_side_image=image("image/somokava_urezanaya.png", xalign=0.0, yalign=1.0)) здесь проблема в том, что стоит точка перед <show_side_image> - при перечислении каких-либо параметров, значений в списках и т.п. всегда используется запятая (точка используется только в числах для отделения целой части от дробной) eside "Привет, меня зовут Сомокава"под "eside" подразумевается персонаж, который должен быть объявлен также как и "e", если этого не сделать, то Рен'пи не будет знать о таком персонаже и выдаст ошибку (что-то вроде "name 'eside' is not defined" - имя переменной 'eside' не объявлено). Т.е. код может выглядеть так $ e = Character(u'Сомокава', color="#c8ffc8") # персонаж без картинки $ eside = Character(u'Сомокава', color="#c8ffc8", show_side_image=image("image/somokava_urezanaya.png", xalign=0.0, yalign=1.0)) # персонаж с картинкой $ povname = renpy.input(u"Как вас зовут?") or u"Аноним"в этой строке просто присваивается значение переменной "povname", путем ввода текста с клавиатуры или значение по умолчанию 'u"Аноним"'. Если есть желание использовать значение этой переменной в качестве имени персонажа, то сначала необходимо в блоке <init:> объявить "такого персонажа" init: $ povname = "" # объявление переменной со значением по умолчанию "" (пусто), если не объявить переменную ДО ее использования, то это вызовет ошибку $ pov = DynamicCharacter("povname", color=(192, 64, 64, 255) # специальный персонаж у которого в качестве имени используется переменная (это не просто <Character>, это <DynamicCharacter> - персонаж с возможностью изменять имя)http://www.renpy.org...tions/Character http://www.renpy.org...ynamicCharacter такие кавычки были использованы автором руководства, что бы показать, что в этом месте может или должен быть какой-то код (при наборе кода игры такие кавычки нигде не используются), в моем посте такие кавычки использованы для того, что бы команды Рен'пи не путать с "именами_переменных_и_проч". http://www.renpy.org....D0.B1.D1.83.21 В руководстве про это написано, просто прочитайте еще несколько раз (с новой информацией всегда так - чем больше перечитываешь, тем понятнее становится) menu: # начало блока меню, все что будет в этом блоке должно иметь дополнительные отступы (пробелы в начале строк) "Хорошая возможность задать вопрос." # Фраза, которая будет в текстовом окне (можно ее не писать, если она не нужна) "А как это выглядит с точки зрения игрока?": # Пункт №1 меню. Каждый пункт меню также является блоком, должен заканчиваться двоеточием, и все строки внутри этого блока должны иметь дополнительный отступ "Я поднял руку, показывая, что у меня есть вопрос." # Результаты: здесь может быть текст, изменение картинок, изменение значений переменных, перепрыгивания к соответствующим меткам <…> # вот это просто надо стереть за ненадобностью "Ничего не спрашивать": # Пункт №2 меню. pass Различные ветки сценария можно поместить в отдельные метки label start: menu: "Первый путь": jump first_path "Второй путь": jump second_path label first_path: # код для одной ветки сценария jump the_end label second_path: # код для другой ветки сценария jump the_end label the_end: "The end."Перемещение между метками осуществляется при помощи команды <jump> http://www.renpy.org...BD.D0.B8.D1.8F. Если правильно расставить отступы в блоках, то никаких косяков быть не должно.
  5. За какой? (Рен'пи) Если да, то запОстите часть своего кода и сообщения об ошибке - попробую помочь разобраться.
  6. to MrStitch: JEdit требует установленную java, скачать ее можно с сайта разработчика - http://www.java.com/...nload/index.jsp (http://www.renpy.org/latest.html). Для редактирования скрипта подойдет любой текстовый редактор, например "блокнот" (Ворд не подойдет, т.к. добавляет форматирование текста). Со старыми версиями Рен'пи шел в комплекте редактор "scite", который ничего не требовал...)) Можете скачать одну из старых версий (до 6.9.х, кажется) и скопировать из нее папку с редактором. Его можно запускать как отдельную программу, а затем в нем открывать файлы скрипта для редактирования. http://www.renpy.org/release_list.html Также http://lemmasoft.ren...it=os+windows+7 - может пригодится.
  7. to Jacksom: Не совсем понял: все персонажи должны были быть между собой знакомы, даже если у главного героя "проблемы с памятью", то остальные должны его помнить и относиться к нему как к знакомому... У меня сложилось впечатление, что никто не считает ГГ членом "команды СОС", хм.
  8. Ммммм... Продолжим "издеваться" над кодом в файле "aliens.py": class Bomb(pygame.sprite.Sprite): ... ... ... if self.rect.bottom >= 590: # надо поставить значение в пикселях, достигнув которого, бомба взорвется (0 - это самый верх игрового поля) class Score(pygame.sprite.Sprite): ... ... ... self.rect = self.image.get_rect().move(10, 550) # положение надписи со счетом
  9. Эт' понятно...)) Для настройки игры надо менять ее код. Откройте файл "aliens.py" в jEdit или любом другом эдиторе. В самом начале: #game constants SCREENRECT = Rect(0, 0, 800, 600) # размер игрового экрана (возможно придется откорректировать размер фоновой картинки) Далее ближе к концу скрипта, в самой функции, которая описывает игру есть строка while player.alive():- это основной игровой цикл (пока игрок "жив" игра продолжается). Меняем условие на что-то типа while player.alive() and SCORE < 10: # в коде игры использована переменная SCORE (большие буквы) Тогда игра будет работать пока игрок "жив" и настрелял меньше 10 тарелочек (которые на самом деле уже не тарелочки). Когда игра закончится, то можно вставить код if score <10: # т.к. результат игры мы сохраняем в переменную score (<$ score = aliens.main()> - помните?) "Loooser... kekekeke" jump play_again_until_beat_this_game "С игрой покончено, можем продолжать."
  10. Ммм, сам никогда не пытался делать мини-игры при помощи renpygame... Если вы хотите использовать игру с инопланетными тарелочками в своей ВН, то надо скопировать в папку *ваш_проект/game* файл "aliens.py" (где находится сам код мини-игры), для игры нужны картинки и звуки, которые должны располагаться в папке *ваш_проект/game/data* (так указано в коде мини-игры, если изменить название папки, то выдаст ошибку, если только не полезете менять код игры). Также, стоит скопировать папку "renpygame", которая есть в комплекте с демо-игрой, и положить ее в папку *ваш_проект* (рядом с "game"), чтобы фреймворк мог работать (название папки не менять, иначе выдаст ошибку). В общем, все как в демо-игре фреймворк'а...)) Ваш код должен сработать - сперва импортируем игру (в блоке init:), а затем, строкой <$ score = aliens.main()> запустим функцию, определенную в игре как "main".
  11. ?!В моем примере: $_game_menu_screen = None play movie "Gem.mkv" $ renpy.pause(89.0, hard=True) $_game_menu_screen = "save_screen" # "включим" правый клик после просмотра видео
  12. to Vicente ?!Что значит "пропускается"? Попробовал сам (на 6.12.1, 6.10.1, 6.9.3) - видео воспроизводится, кликом мыши оно не прерывается, но исполняются следующие строки скриптА. Пауза как раз и предотвращает исполнение этих строк (длительность паузы должна соответствовать длительности видео). Если у вас не так, то опишите поподробнее, плиззз. to MrStitch 1) Наоборот - первое изображение (ground) неактивное меню, а второе (selected) - где все пункты нарисованы активными. Интерактивная область задатся координатами (x,y верхнего левого угла области) (x,y правого нижнего угла области) - для каждой кнопки меню. 2) Код может располагаться в любом блоке init: ($ layout.imagemap_main_menu ...) либо init python: (layout.imagemap_main_menu ...) соответственно. Для более удобного редактирования его можно разместить в файле options.rpy. 3) Строки кода исполняются в строго определенной последовательности. Даже если не использовать знак "#", а поместить <layout.imagemap_main_menu ...> в конец файла options.rpy, то последней исполнится эта строка и она-то и будет определять вид меню. Если расположить ее в другом блоке init:, то он должен быть с индексом больше -2, т.е. init -1:, или init:, или init 120: и т.д., т.к. в options.rpy используется блок init -2: (суть в том, что бы этот код исполнился после стандартного кода, который прописан по умолчанию). Пы.Сы. Если используете Рен'пи версии 6.12.х, то там все меню выполнены в виде экранов (screens), с возможностью их редактирования. Таких возможностей на порядок выше (код для всех экранов, используемых по умолчанию, находится в screens.rpy).
  13. play movie "user_hate.ogv" $ renpy.pause(15.0, hard=True) Должно получиться (длительность паузы должна соответствовать длительности видео, а <hard=True> делает невозможным прервать паузу кликом мыши). Правка: сам не пробовал, но говорят, что еще полезно на время отключить доступ в игровое меню (а то после возврата оттуда вместо видео показывает черный экран) $_game_menu_screen = Noneперед видео, и $_game_menu_screen = "save_screen"сразу после паузы.
  14. Movies: OGG Theora, MPEG 4, MPEG 2, MPEG 1 http://www.renpy.org/why.html Т.е. видео не воспроизводится вообще? (или через полчаса все-таки оно появляется?) Есть ли сообщение об ошибке?
  15. Дык, отключать надо...))http://www.renpy.org...Developer_Tools http://www.renpy.org...onfig.developer http://www.renpy.org...asing-your-game
  16. Vicente, вы точно ответили на 5 вопросов правильно? Не на 4, не на 6, т.к. у вас стоит условие <if victory == 5>. Возможно в коде неправильно организованы jump'ы... Вообще, зачем прыгать по блокам? Можно задать вопросы подряд, разбавив неким текстом между менюшками... label start: $ victory = 0 # начальное значение menu: "Первый вопрос": "Правильный ответ": $ victory +=1 "Неправильный ответ": pass menu: "Второй вопрос": "Правильный ответ": $ victory +=1 "Неправильный ответ": pass menu: "Третий вопрос": "Правильный ответ": $ victory +=1 "Неправильный ответ": pass menu: "Четвертый вопрос": "Правильный ответ": $ victory +=1 "Неправильный ответ": pass menu: "Пятый вопрос": "Правильный ответ": $ victory +=1 "Неправильный ответ": pass "Вот и все с вопросами. Теперь узнаем результат..." jump result label result: if victory >4: "Похоже, что это победа...))" else: "Всего %(victory)d правильных ответов, а надо - 5." В процессе можно использовать Developer tool (Shift + d - язык должен быть английским) - в открывшемся меню выбрать Variable Viewer (просмотр переменных). Там будут написаны текущие значения игровых переменных.
  17. Рен'пи ожидал конец строки, а обнаружил двоеточие... (должно быть просто <jump dush>) Двоеточие ставится в конце первой строки блока - оно показывает, что последующие строки этого блока должны иметь дополнительный отступ (indentation). Главное в сообщениях об ошибке - номер строки в которой она обнаружена. А вообще, сообщения об ошибках в Рен'пи простые и понятные... Indentation mismatch (и другие ошибки, где есть слово Indentation) - все, что связано с неправильной индентацией строк (лишние пробелы или их не хватает) end of line expected - когда логически строка должна закончиться, но Рен'пи находит еще какие-либо символы в ней (кроме комментариев). ...expects a non-empty block - пустой блок (так быть не должно). Либо исправить индентацию (в следующих строках добавить пробелы, если это действительно блок), либо добавить в пустой блок строку <pass> (команда, которая ничего не делает, но заполняет собой блок), либо убрать двоеточие в строке, если это на самом деле не блок. expected 'name' not found - когда ожидается некое название (изображения, блока и т.д.), а вместо этого написано что-либо другое name 'имя переменной' is not defined - когда используется переменная, значение которой ранее не определено (поэтому, лучше всего присваивать значения всем переменным в самом начале блока "старт"). Name u'название блока' is defined twice - два блока с одинаковыми названиями. Названия блоков должны быть уникальными (начинаться с буквы и быть одним словом, т.е. не содержать пробелов (можно использовать нижнее подчеркивание)) ... is not terminated with newline. (Check strings and parenthesis.) - необходимо проверить соответствие открывающих и закрывающих скобок invalid syntax - неправильный синтаксис (возможно пропущены запятые, ошибки в названиях команд (большие и маленькие буквы учитываются) expected statement - Рен'пи не нашел известной ему команды (возможно ошибка в написании, либо пропущен знак $ в начале единичной строки на питоне) %d format: a number is required, not str - если формат вывода данных <%d> (т.е. числовые данные), но при этом переменной присвоено текстовое значение. expected 'simple_expression' not found. - проблема со значениями, которые указаны для команд (например xpos = "text" вместо числового значения - текст) u'какое-то слово' is not a keyword argument or valid child for... - для данной функции, введенная команда не является правильным аргументом или дочерним элементом (?) (ошибка в названии или для данной функции такая команда просто не применима) Уфф, вот - что смог припомнить...))
  18. Ммм, хорошо... Синтаксис был неправильный...(( http://lemmasoft.ren...hilit=dp_choice Здесь рассказано, как правильно указать условия для <dp_choice>. init python: shop_enable_value = False # убираем кавычки - теперь значение будет не текст "False", а логическое "ложь" shop_show_value = True dp_period(какой-то код) dp_choice("Shop", "shop", enable="shop_enable_value==True", show="shop_show_value==True" ) # проверяем значения переменных "shop_enable_value" и "shop_show_value" - если их значения "истина" (True без кавычек), то наши условия ("shop_enable_value==True" и "shop_show_value==True") вернут значения "истина" и все сработает. # если мы в начале присвоили значения переменным "shop_enable_value" и "shop_show_value" с кавычками ("True"), то получается, что значение - это некий текст (с учетом больших и маленьких букв). Тогда в условиях для <dp_choice> значения нужно было бы писать тоже в кавычках (одинарных, что бы не запутать Рен'пи) - enable="shop_enable_value == 'True' " label shop_ok: $ shop_enable_value = True # в этом примере значения везде используются без кавычек Также, если значением переменной может быть только "истина" / "ложь", то можно сократить код if my_var - это тоже самое, что и if my_var == True Тоесть код можно записать так: init python: shop_enable_value = False shop_show_value = True dp_period(какой-то код) dp_choice("Shop", "shop", enable="shop_enable_value", show="shop_show_value" ) label shop_ok: $ shop_enable_value = True
  19. С DSE не работал, но есть мысль... dp_choice("Shop", "shop", enable="False", show="True" )присваивает параметрам <enable> и <show> значения "False" и "True" соответственно. Попробуйте вместо конкретных значений использовать переменные, значения которых можно будет менять в процессе игры (только в блоке init: или в самом начале блока start: надо будет присвоить этим переменным начальные значения) init: $ shop_enable_value = "False" $ shop_show_value = "True" ... ... ... dp_choice("Shop", "shop", enable=shop_enable_value, show=shop_show_value ) ... ... ... label start: ... ... ... $ shop_enable_value = "True" Так и должно быть - Рен'пи обрабатывает сразу все ".rpy" файлы в папке с игрой (как если бы это был один файл, содержащий все блоки), а далее исполняет блоки в последовательности: - init python (в соответствии с очередностью - -5 раньше, чем -2) - init (в соответствии с очередностью) - start
  20. Скорее всего проблема в том, что не установлена Java. На сайте движка есть ссылка на скачивание. http://www.renpy.org/latest.html "Java Requirement. Java is required to run the jEdit text editor. If it's not installed on your computer, you'll need to download it from java.com. Java is not required to run Ren'Py, only to develop with it."
  21. to Vicente Добавить можно любые - какие хотите. Вот только их сперва надо сделать. Есть специальный framework (конструктор - ?), называется - Renpygame. В нем можно делать сложные игрушки (в Демо Рен'пи есть пример такой игры - стрельба по инопланетным тарелочкам). Необходимы навыки программирования. http://www.renpy.org...works#Renpygame Также, можно сделать мини-игры используя python (в Демке - игра в пинг-понг), или используя обычные элементы Рен'пи (imagemap, кнопки и т.п.) создать интерфейс игрушки. to Guljaca Меню выбора в Рен'пи встроены изначально (http://www.renpy.org...abels-and-jumps) Если есть желание создать более "красивое" меню, то можно сделать "экран" (screen) на котором отобразить imagemap или набор кнопок (текстовых или графических) http://www.renpy.org...ml/screens.html http://www.renpy.org/wiki/renpy/doc/cookbook/Cookbook init: # какой-то код screen onscreen_button: textbutton u"Нажми меня" action Return("True") xpos 0.5 ypos 0.4 textbutton u"Не нажимай меня" action None xpos 0.5 ypos 0.6 label start: "Ничего не видно" call screen onscreen_button "Продолжим"
  22. Игрушка выглядит здорово! Красочная и оформление текстбокс'а оригинальное. Особенно понравилось - "Пойду в паб и нажрусь! И гори оно все огнем!" - лучший выход из всяких треугольников...))
  23. Теперь упоминание есть...)) Если есть желание обсудить другие движки - всегда можно попробовать, вдруг кто-то заинтересуется. Просто топикстартер (Зеро) рассказал нам о Рен'пи и даже сделал локализацию и перевел руководство. Сам я Novelty не пользовался, но зашел на их сайт и посмотрел на ю-тубе примеры использования. Могу сказать лично мое, поверхностное впечатление (если интересно). Одно из главнейших достоинств Рен'пи - это кроссплатформенность, а Новелти работает только из-под виндовс. http://www.renpy.org/why.html http://www.visualnovelty.com/ Также, Новелти предъявляет требования к "железу" и "софту"...( http://www.visualnov...tml#unsupported http://www.visualnov...help.html#faq14 По поводу сложности использования - Рен'пи создавался именно для тех, кто может писать тексты и рисовать, программирование совсем не обязательно. И лично для меня проще написать что-то типа показать фон показать перса справа перс "Привет мир!"чем безумно кликать по чекбокс'ам и спискам... Вообще, навык набора текстов всегда пригодиться. Пользователи Новелти могут использовать Java и С++, пользователи Рен'пи - python. Т.е. если есть желание, то можно "заняться программизмом" и там и там. В итоге, каждый выберет то, что ему больше понравится. Мне Рен'пи понравился больше.
  24. to izlom1992: http://www.renpy.org...ml/android.html - ссылка на документацию (может будет полезной), сам добавить ничего не смогу.
  25. Так это нормально - человеку цветА, а компьютеру цифры. (Некоторое количество информации - http://project.net.r...icle1/107_1.htm)Если воспользоваться фотошопом, то при выборе цвета будет написано его шестнадцатеричное значение, а ткаже значения rgb. Последняя "a" в определении цвета - это прозрачность (255 - не прозрачный). Для изменения внешнего вида имени персонажа используются параметры с приставкой <who_>, а для изменения внешнего вида реплик персонажа - <what_>. $ m = Character( u'Мадока', who_color="#c1c1ff", what_color=(193, 193, 255, 255) )
×
×
  • Создать...

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