-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.rpy
More file actions
444 lines (252 loc) · 20.3 KB
/
Copy pathscript.rpy
File metadata and controls
444 lines (252 loc) · 20.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
default persistent.new_game = True
default persistent.teacher = False
define new_start = True
# Определение персонажей игры.
define e = Character('Эйлин', color="#c8ffc8", image='eileen')
label splashscreen:
$ persistent.show_title = True
$ persistent.name_slect = 'none'
$ _dismiss_pause = True
return
label start:
$ persistent.plus = 1
if new_start:
$ persistent.show_title = True
$ persistent.name_slect = 'none'
$ _dismiss_pause = False
scene main:
xalign 0.0
show phone-off:
zoom 0.43 rotate 5 yalign -0.1 xalign -0.7
with Dissolve(.3)
pause 0.3
show phone-off:
ease 0.7 yoffset 1000 xoffset -100
pause 0.7
# show eileen happy:
# xalign -0.5 yalign 1.0
# ease 1.5 xalign 0.5
pause 1.0
$ _dismiss_pause = True
if persistent.new_game:
e happy "Эта игра включает в себя, как теоретическую, так и практическую часть, что позволяет улучшить усваивание информации."
e 'Длшя удобства, темы разбиты на разделы, между которыми можно переключаться как в презентации по слайдам.'
if persistent.teacher == False:
e "Сейчас вы находитесь в режиме ученика, и для перехода на следующую тему или раздел вам нужно пройти все предыдущие, не считая первых двух тем."
else:
e "Сейчас вы находитесь в режиме учителя и можете свободно переключаться между темами."
e "Изменить это можно в настройках игры."
e "Для начала рекомендуется пройти тему про понятие визуальной новеллы."
$ persistent.new_game = False
$ new_start = False
else:
hide screen minus
hide screen plus
with Dissolve(0.1)
hide screen pages with Dissolve(.3)
e happy 'На этом тема закончена, можете перейти к следующей или выйти в главное меню.'
label .new:
e "Выберите интересующую вас тему.{w=0.2}{nw}"
hide eileen happy with dissolve
window hide
show screen guide with Dissolve(.3)
pause
return
label novel:
hide screen guide with Dissolve(.3)
show eileen happy:
yalign 1.0
ease 0.5 xalign 0.5
window show
label .l1:
e 'Итак, прежде чем изучать процесс создания визуальных новелл стоит понять что вообще представляет собой визуальная новелла.'
e 'Визуальная новелла — жанр компьютерных игр, подвид текстового квеста, в котором зрителю демонстрируется история при помощи текста, изображений и звуковых эффектов.'
e 'Наглядный пример визуальной новеллы есть прямо на ваших экранах.'
e 'В классическом понимании визуальной новеллы, игра содержит фоновое изображение, изображение персонажей (спрайты), окно с текстом и звуковые эффекты.'
label .l2:
scene main:
xalign 0.0
show eileen happy
with Dissolve(.1)
e 'Фоновое изображение меняется в зависимости от места действия.'
e 'Например, сейчас фоновым изображение является класс информатики.'
scene street
show eileen happy
with Dissolve(.2)
e 'А сейчас улица.'
label .l3:
scene street
show eileen happy
with Dissolve(.1)
e meh 'Изображение персонажа, принято называть его спрайтом, может не только меняться на другое'
show eileen vhappy:
ease 0.5 xalign 1.0
pause 0.5
ease 1.0 xalign -0.5
extend ', но и перемещаться по экрану и как-либо трансформироваться.'
scene main:
xalign 0.0
show eileen happy
with Dissolve(.2)
label .l4:
scene main:
xalign 0.0
show eileen happy
with Dissolve(.1)
e 'Любые изображения могут быть, как и статическими, то есть неподвижными, так и анимированными.'
e 'Окно с текстом, как правило, расположено снизу экрана и включает в себя имя персонажа, который говорит, и сам текст, однако никаких ограничений на этот счёт нет'
e 'Звуком в игре может являться, как и фоновая музыка, так и простые звуковые эффекты.'
label .l5:
scene main:
xalign 0.0
show eileen happy
with Dissolve(.1)
e 'Бывают линейные визуальные новеллы, в которых история рассказывается по одной линии.'
e 'Однако чаще всего игра включает в себя несколько концовок, а игрок влияет на исход событий путём выбора.'
e 'Например.. {w=0.2}Нравится ли вам визуальные новеллы?{w=0.2}{nw}'
menu:
e '{cps=0}Например.. Нравится ли вам визуальные новеллы?{/cps}'
'Да':
e vhappy 'Это здорово!'
'Не знаю':
e 'Это нормально, многим сложно сразу ответить на подобный вопрос.'
'Нет':
e meh 'Ну, у каждого свои вкусы...'
e happy 'Выбрав другой любой вариант, ответ был бы другим.'
e 'Можете проверить это, нажав кнопку "Назад" внизу экрана и выбрав другой вариaнт ответа.'
e 'В сложных визуальных новеллах выборы могут влиять на концовку игры, открывать или блокировать доступ к отдельным сюжетным веткам.'
e 'Чаще всего именно на выборах и строится весь процесс игры.'
label .l6:
scene main:
xalign 0.0
show eileen happy
with Dissolve(.1)
e 'Однако, визуальная новелла также может включать себя интерактивные функции и механики.'
e 'Например, свободное передвижение по карте, инвентарь, элементы РПГ и многое другое!'
e 'Новеллы также могут включать в себя мини-игры.'
e 'Мини-игрой может являться, например, карточная или настольная игра.'
e vhappy 'В конечном итоге, несмотря на свою простату, визуальная новелла может включать в себя много всего, и всё ограничивается лишь вашей фантазией!'
e happy 'Это и есть визуальная новелла.'
jump start
label why:
hide screen guide with Dissolve(.3)
show eileen happy:
yalign 1.0
ease 0.5 xalign 0.5
window show
label .l1:
hide screen minus
hide screen plus
show eileen happy:
ease 0.2 xalign 0.5
e 'Все игры создаются в специальных программах, называемых игровыми движками.'
e 'Игровых движков cуществует почти несчитанное множество, как и общих, на которых можно создать любую игру, так и предназначенных для создания игр конкретного вида.'
e "Так почему же стоит выбрать именно Ren'Py?"
e "Ren'Py является узконаправленным движком предназначенным для создания визуальных новелл в 2D-графике."
label .l2:
hide screen minus
hide screen plus
e 'Давайте перечислим его плюсы.'
show eileen happy:
ease 0.3 xalign 0.4
$ persistent.plus = 1
show screen plus with Dissolve(.2)
e 'Одним из самых важных плюсов, на который люди в первую очередь смотрят при выборе движка, является популярность ПО.'
e "Ren'Py является самым популярным игровым движком для создания визуальных новелл."
e 'На нём было создано множество известных игр, например: "Доки Доки Литературный клуб", "Бесконечное Лето", "Tiny Bunny" и другие.'
e 'Популярность программного обеспечения также означает, что в интернете в свободном доступе можно найти множества видеоуроков, форумов и туториалов и даже готового контента и кода!'
e "Ren'Py также популярен среди русскоговорящих разработчиков. Поэтому можно быть уверенным в том, что вы надйёте решение любой проблемы, которые у вас могут возникнуть при создании игры."
label .l3:
hide screen minus
show eileen happy:
ease 0.6 xalign 0.4
show screen plus with Dissolve(.1)
$ persistent.plus = 2
e 'Вторым важным плюсом является доступность ПО и его удобное лицензионное соглашение.'
e "Ren'Py является полностью бесплатным, открытым и свободным движком для создания как некоммерческих, так и коммерческих проектах."
e 'Созданные на этом движке игры могут свободно распространяться любым способом и в любом виде.'
e 'Многие новички в разработке игр недооценивают значимости условий использования, однако нарушения авторских прав может повлечь за собой много неприятных последствий.'
e "Ren'Py следует лицензиям MIT, LGPL и имеет открытый исходный код, который любой желающий может изменить и свободно распространить новую версию движка."
label .l4:
hide screen minus
show eileen happy:
ease 0.6 xalign 0.4
show screen plus with Dissolve(.1)
$ persistent.plus = 3
e 'Ещё одним важнейшим для новичков плюсом является простота программы.'
e "Несмотря на то, что создание игры происходит путём написания кода, Ren'Py имеет наипростейший синтаксис, который будет понятен каждому."
$ text_code = _p("""e {color=#4adfa2}"Ещё одним важнейшим для новичков плюсом является простота программы."{/color}
e {color=#4adfa2}"Несмотря на то, что создание игры происходит путём написания кода, Ren'Py имеет наипростейший синтаксис, который будет понятен каждому."{/color}
""")
show screen code
e 'Вот, например, код, который выводит в текстовом окне предыдущие две реплики.'
e "В том, как правильно писать код для Ren'Py очень легко разобраться, достаточно лишь прочесть несколько уроков и увидеть пример."
hide screen code
e 'По умолчанию при создании проекта игра уже имеет игровое меню, экраны настроек, помощи, навигации и кнопку "Начать". Всё это с возможностью лёгкой кастомизации.'
e "Более того, Ren'Py, как можно догадаться по названию работает на языке Python, который считается одним из самых простых языков программирования. И все действия с переменами работают аналогично."
label .l5:
hide screen minus
show eileen happy:
ease 0.6 xalign 0.4
show screen plus with Dissolve(.1)
$ persistent.plus = 4
e 'Из этого вытекает и следующий плюс ПО: гибкость.'
e 'Движок позволяет практически неограниченно загружать и использовать библиотеки Python, что даёт опытным разработчикам почти бесконечные возможности!'
e "В Ren'Py можно писать функции на чистом Python'е и вызывать их в нужное время. Благодаря этому можно создавать мини-игры и интересные интерактивные функции."
label .l6:
hide screen minus
show eileen happy:
ease 0.6 xalign 0.4
show screen plus with Dissolve(.1)
$ persistent.plus = 5
e 'Последним, но не менее важным, плюсом движка является мультиплатформинность.'
e 'Сам движок можно загрузить только на ПК с операционной системой Windows, Mac, или Linux.'
e 'Однако запустить готовую игру можно не только на компьютере, но и на мобильном устройстве (телефон, планшет и т.д.) Android или IOS.'
e vhappy "Кроме того, Ren'Py поддерживает запуск игры прямо в браузере!"
label .l7:
hide screen minus
show eileen happy:
ease 0.6 xalign 0.4
show screen plus with Dissolve(.1)
e happy 'Это были основные плюсы движка. Но ничто не идеально, теперь перейдём к минусам.'
show eileen meh:
ease 0.6 xalign 0.6
hide screen plus with Dissolve(0.2)
show screen minus with Dissolve(0.3)
e "Итак, главным минусом Ren'Py является то, что, несмотря на простату синтаксиса, всё равно нужно писать код."
e 'Многих людей это отталкивает, ведь "написать код" - звучит слишком серьёзно и сложно.'
e 'Однако, как уже было сказано в плюсах, у движка действительно простой синтаксис, который сможет понять каждый... Однако, это касается в основном только базовых вещей.'
e 'Сменить изображение, вывести текст, показать экран - это всё делается очень легко. Но если нужно сделать что-то посложнее, для чего нет отдельной функции в Ren\'Py, то может понадобиться знания Python\'а и у новичков могут возникнуть проблемы.'
e 'Это безусловно минус, хотя и для создания простой новеллы в движке всё предусмотренно.'
label .l8:
hide screen plus
show eileen meh:
ease 0.6 xalign 0.6
show screen minus with Dissolve(.1)
$ persistent.minus = 2
e 'Python является не только одним из самых лёгкий языков программирования, но и один из медленных. Это сказывается и на работе Ren\'Py и является вторым минусом.'
e 'В большенстве случаев это практически не заметно. Однако проблемы могут возникнуть при создании проектов с большим количеством переменных и связанных с ними изображений или слишком загруженными функциями Python.'
e 'Также на мобильных устройствах могут возникнуть проблемы с отображением видео или большого количество анимированных изображений.'
label .l9:
hide screen plus
show eileen meh:
ease 0.6 xalign 0.6
show screen minus with Dissolve(.1)
$ persistent.minus = 3
e 'Последним серьёзным минусом является то, что игры, созданные на Ren\'Py легко взломать.'
e 'По сути они никак не замещены и код игры может посмотреть каждый.'
e 'Однако это проблема чаще всего волнует продвинутых разработчиков. Также существуют отдельные программы по шифрованию файлов игр.'
label .l10:
show eileen happy:
ease 0.3 xalign 0.5
$ persistent.minus = 3
$ persistent.plus = 5
show screen minus
show screen plus
e 'Это были основные плюсы и минусы движка.'
e 'Безусловно, плюсов куда больше и они более зачимые, чем минусы. Но всё же выбор всегда остаётся за отдельным человеком.'
e "Ren'Py является хорошим движком по созданию визуальных новелл и отлично подходит для начинающих разработчиков."
hide screen minus
hide screen plus
with Dissolve(0.3)
jump start