Compare commits

...

196 Commits

Author SHA1 Message Date
Tom Rothamel d5b8b8ca53 Merge pull request #1472 from AXYPB/master
Minor documentation corrections
2018-05-31 02:24:06 -04:00
Craig Donson 820647de5f Correction to Unicode capitalization 2018-05-31 00:30:26 -04:00
Craig Donson 0eaaff325c Corrections to Python capitalization and backticks 2018-05-30 10:17:51 -04:00
Craig Donson 6b0b672546 Change to UTF-8 encoding 2018-05-30 10:14:26 -04:00
Tom Rothamel 787a053e8d doc: Fix ypos. 2018-05-30 09:23:45 -04:00
Craig Donson 392a3fead1 Minor documentation corrections 2018-05-30 03:19:14 -04:00
Tom Rothamel f1fbbc740d doc: Fix encoding issues and other errors. 2018-05-29 11:41:17 -04:00
Tom Rothamel db9ffb706e Update docs. 2018-05-29 09:40:53 -04:00
Tom Rothamel ccfdb991ac Translate file page name input values.
Fixes #1470.
2018-05-28 12:41:29 -04:00
Tom Rothamel 891eea363c doc: True -> true. 2018-05-28 12:18:24 -04:00
Tom Rothamel c472ecdddc Merge pull request #1469 from AXYPB/master
Additional documentation corrections
2018-05-28 12:17:30 -04:00
Tom Rothamel 8da9a6c415 Update translations. 2018-05-27 16:58:48 -04:00
Tom Rothamel a4058b8c5f Update the piglatin translation. 2018-05-27 16:34:45 -04:00
Craig Donson 099c372b28 Additional documentation corrections 2018-05-27 16:30:25 -04:00
Tom Rothamel ec16d57d3f Merge pull request #1468 from Ria-kon/master
Small fix for Tutorial
2018-05-26 23:35:39 -04:00
Ria-kon 327653a924 Fix for French Tutorial 2018-05-27 01:20:11 +03:00
Ria-kon 9d189e3386 Updating Russian Tutorial... 2018-05-27 01:18:51 +03:00
Ria-kon a345a887a0 Slightleft ruines every translation =) 2018-05-27 01:09:05 +03:00
Tom Rothamel 190aae94e4 Use _choose_attributes to select an image.
This is done a bit earlier now, when trying to find the attributes,
rather than checking that the attributes are okay. This makes it
possible to have multiple layeredimages in which one is the prefix
of the next, so long as no attributes overlap.
2018-05-26 10:51:54 -04:00
Tom Rothamel d154a4041b Do not choose an image with unknown attributes.
This makes it possible to have both a layered image and special
poses, and the layered image will only be chosen if a special
pose isn't used.
2018-05-26 10:46:47 -04:00
Tom Rothamel 0e4830a49a from __future__ import print_function 2018-05-26 03:14:39 -04:00
Tom Rothamel 9ae1aed773 Check file alt translations. 2018-05-25 00:05:03 -04:00
Tom Rothamel f043a4270c Merge pull request #1466 from jsfehler/invocation_typo
Fix typo in comments
2018-05-24 18:55:01 -04:00
Joshua Fehler 1aa0b2d0c3 Fix typo in comments 2018-05-23 20:20:50 -04:00
Tom Rothamel e68e1b17e3 Set text as focusable iff it contains an {a tag. 2018-05-23 02:25:56 -04:00
Tom Rothamel 775c1510a3 Allow focus to return to a hyperlink when an interaction starts. 2018-05-22 22:44:36 -04:00
Tom Rothamel 801b3ae6cf Do not greedy rollback past the rollback limit.
This prevents greedy rollback from violaing the limit imposed
by renpy.block_rollback.
2018-05-21 09:55:51 -04:00
Tom Rothamel b4a7e0d599 Purge the rollback log when in the main menu.
Purging it blocks all rollback, including to the current
statement. This ensures the player can never roll back before
label start.
2018-05-21 09:55:51 -04:00
Tom Rothamel 1cfed994f7 Merge pull request #1463 from AXYPB/master
Additional documentation corrections
2018-05-21 02:38:46 -04:00
Tom Rothamel 80bb98dd41 Remove special handling of labels during rollback.
This has the potential of causing things to rollback too far, or
to the wrong place.
2018-05-20 16:20:15 -04:00
Tom Rothamel 20b8fbaf14 Greedy rollback goes to a hard checkpoint.
This makes more of the game available to the id.
2018-05-20 02:34:43 -04:00
Tom Rothamel 1eb9780871 Update return nodes on script edit.
This helps with the return from _after_load when the director
first loads.
2018-05-20 02:25:31 -04:00
Tom Rothamel c79ef6f498 When a node is added, roll back to before it.
Fixes an issue editing the first appearance of Sylvie in The Question.
2018-05-19 22:31:38 -04:00
Craig P. Donson cdc3738eca Update README.rst
Correct capitalizations
2018-05-19 13:24:08 -04:00
Tom Rothamel 8cfbe4af8f Make contexts printable. 2018-05-18 22:55:43 -04:00
Tom Rothamel 9dc8d62d4a Fix docs.
Fix #1462.
2018-05-18 08:19:56 -04:00
Craig P. Donson d547c37f44 Update developer_tools.rst 2018-05-17 23:34:50 -04:00
Craig P. Donson e7aebe5e70 Update developer_tools.rst
Typo corrections
2018-05-17 23:34:23 -04:00
Craig P. Donson cd325c80d5 Update store_variables.rst
Typo corrections;
Correct capitalization of True and False
2018-05-17 23:31:10 -04:00
Craig P. Donson f8b7c730df Update config.rst
Correct capitalization of True, False, and Python
2018-05-17 23:27:41 -04:00
Craig P. Donson 2d5b3265da Update screen_optimization.rst
Formatting corrections
2018-05-17 23:23:57 -04:00
Craig P. Donson 97760df1a4 Update screen_special.rst
Typo corrections;
Correct capitalization of True and False
2018-05-17 23:21:35 -04:00
Craig P. Donson b8c72be304 Update screens.rst
Formatting corrections;
Correct capitalization of True, False, and Python;
Remove potentially erroneous statement in Default documentation
2018-05-17 23:17:52 -04:00
Craig P. Donson 7b9f1955f1 Update style_properties.rst
Correct capitalization;
Add hyperlinks to style properties
2018-05-17 23:00:53 -04:00
Craig P. Donson e1c512a982 Update style.rst
Formatting corrections
2018-05-17 22:42:26 -04:00
Craig P. Donson c05ca5de4a Update atl.rst
Formatting corrections
2018-05-17 22:36:03 -04:00
Craig P. Donson 4c14b6c939 Update transition.py
Correct capitalization of True and False
2018-05-17 22:28:15 -04:00
Craig P. Donson 1526535ec7 Update text.rst
Change hyperlink for FontGroup
2018-05-17 22:15:03 -04:00
Craig P. Donson f49faf1796 Update side_image.rst
Formatting corrections
2018-05-17 22:11:12 -04:00
Craig P. Donson 2125065ec7 Update input.rst
Typo corrections
2018-05-17 22:02:34 -04:00
Craig P. Donson e7ee26c1a3 Update character.py
Formatting corrections
2018-05-17 21:56:44 -04:00
Craig P. Donson f36712bfc3 Update voice.rst
Formatting corrections
2018-05-17 21:47:50 -04:00
Craig P. Donson bebbde3529 Update dialogue.rst 2018-05-17 19:53:48 -04:00
Craig P. Donson 8771c7e877 Update dialogue.rst
Add indentation to window statements
2018-05-17 19:51:36 -04:00
Craig P. Donson d99f80125d Update dialogue.rst 2018-05-17 19:47:47 -04:00
Craig P. Donson d553f7aade Update exports.py
Correct capitalization of True and False
2018-05-17 19:41:26 -04:00
Craig P. Donson ee813131c0 Update exports.py
Formatting correction; needs verification
2018-05-17 19:32:46 -04:00
Craig P. Donson 802b8ac98a Update displaying_images.rst
Formatting corrections
2018-05-17 19:26:43 -04:00
Craig P. Donson ade8bfed6f Update menus.rst
Formatting corrections
2018-05-17 19:19:57 -04:00
Craig P. Donson 935a086a46 Update python.rst
Formatting corrections
2018-05-17 19:18:05 -04:00
Craig P. Donson 429c8ed498 Update conditional.rst
Formatting corrections
2018-05-17 19:12:15 -04:00
Craig P. Donson a0654e7259 Update audio.rst
Typo corrections
2018-05-17 18:36:47 -04:00
Craig P. Donson 76b866f03a Update movie.rst 2018-05-17 18:26:06 -04:00
Craig P. Donson a919a65a5a Update movie.rst
Typo corrections
2018-05-17 18:25:48 -04:00
Craig P. Donson 4db0ca5ff8 Update voice.rst
Formatting corrections
2018-05-17 18:17:59 -04:00
Craig P. Donson 16b2d4a611 Update 00voice.rpy
Formatting corrections
2018-05-17 18:16:13 -04:00
Craig P. Donson 7f5c514ebc Update script.py
Correct capitalization of True and False
2018-05-17 18:05:17 -04:00
Craig P. Donson 9c5103d28d Update label.rst
Typo corrections;
Change reference to PEP 3102 to a hyperlink
2018-05-17 18:00:46 -04:00
Craig P. Donson 47f811540e Update statement_equivalents.rst
Typo corrections; 
Change names of Python functions to hyperlinks
2018-05-17 17:08:30 -04:00
Craig P. Donson 580e81cc45 Update text.rst
Typo and formatting corrections
2018-05-17 17:07:12 -04:00
Craig P. Donson ed6e3e867d Update chromeos.rst
Typo corrections
2018-05-17 16:51:03 -04:00
Craig P. Donson f77370a3c9 Update iap.rst
Typo corrections; consistency with Amazon Appstore branding
2018-05-17 16:48:35 -04:00
Craig P. Donson 9600ed33da Update custom_text_tags.rst
Formatting corrections
2018-05-17 16:46:18 -04:00
Craig P. Donson 147273950e Update self_voicing.rst
Typo corrections
2018-05-17 16:45:40 -04:00
Craig P. Donson 7ed037e13e Update changelog.rst
Typo corrections to 7.0 changelog
2018-05-17 16:36:46 -04:00
Craig P. Donson 80bdfd0f4d Update problems.rst
Correct formatting
2018-05-17 16:28:13 -04:00
Craig P. Donson 893a4c7837 Update raspi.rst
Typo corrections
2018-05-17 16:24:27 -04:00
Craig P. Donson 2588029806 Update font.py
Correct docstring for renpy.register_sfont()
2018-05-17 16:16:38 -04:00
Tom Rothamel a84109b296 Merge pull request #1461 from AXYPB/master
Documentation corrections
2018-05-17 10:51:38 -04:00
Craig P. Donson 508ef78a7b Update layeredimage.rst
Typo corrections
2018-05-17 10:30:57 -04:00
Craig P. Donson b94ece9bba Update config.rst
Correct reference to `preference-variables`
2018-05-17 09:46:04 -04:00
Tom Rothamel 52702a6f77 Force a checkpoint when blocking rollback.
So the rollback has a place to stop at.
2018-05-16 22:24:05 -04:00
Tom Rothamel fc0b94ab37 Merge pull request #1456 from xavi-mat/master
Update Spanish translation
2018-05-16 01:01:51 -04:00
Tom Rothamel 7a10005dc6 id: Make it easier to debug the statement. 2018-05-14 17:58:58 -04:00
xavi-mat cef338c242 Update developer.rpy
Small changes: capitalized titles
2018-05-14 03:17:48 +02:00
xavi-mat 0cbb2e99c4 Update common.rpy
It seems this line is throwing an error:
```# 00action_file.rpy:417
old "Load slot %s: [text]"
new "Cargar partida %s: [text]"```
2018-05-14 03:07:08 +02:00
xavi-mat 8274fdd270 Update Spanish translation
Spanish translation should be complete now.
2018-05-14 02:21:18 +02:00
Tom Rothamel 90e6228360 Fix the list of attributes from a visual novel. 2018-05-13 19:59:13 -04:00
Tom Rothamel f2d6ae644a Showing a movie sprite that is already showing will now re-play the movie. 2018-05-13 18:44:05 -04:00
Tom Rothamel 6a84eac9d2 Fix documentation. 2018-05-13 14:14:38 -04:00
Tom Rothamel 890d92274c Fix bad link. 2018-05-13 01:20:07 -04:00
Tom Rothamel 4fe5d526d0 Document LayeredImageProxy. 2018-05-13 01:17:24 -04:00
Tom Rothamel 559c657349 Add LayeredImageProxy.
This is a way of proxying attributes between layered image,
perhaps with a transformation as well.
2018-05-12 23:45:58 -04:00
Tom Rothamel 8da0b588f8 Add a function that returns the raw registered image. 2018-05-12 21:07:58 -04:00
Tom Rothamel 99093c5333 Add functions to better access the showing and hidden tags. 2018-05-11 22:57:36 -04:00
Tom Rothamel 05c23a4aff Update sponsors. 2018-05-11 18:33:18 -04:00
Tom Rothamel 7731085dc6 Do not framedrop when playing a movie sprite with a mask.
Fixes #1455. I believe the issue there was that if a frame was
dropped from the main or mask movies, the two would get out of
sync. This prevents that entirely.
2018-05-10 22:08:09 -04:00
Tom Rothamel bc82a255c6 Add the ability to playback video without framedropping.
This is to support the fix for #1445.
2018-05-10 22:04:27 -04:00
Tom Rothamel 32237ba6de Update Java URL.
And in general, make it clear what people need to succeed.
2018-05-10 02:22:30 -04:00
Tom Rothamel f1cfb3c69a Update credits. 2018-05-09 20:45:25 -04:00
Tom Rothamel 78d3088360 Force black in a few places, rather than forcing transparency. 2018-05-08 22:49:26 -04:00
Tom Rothamel 8c0caa9f17 Update translations. 2018-05-07 23:25:13 -04:00
Tom Rothamel 6608288eef Update changelog. 2018-05-07 23:25:13 -04:00
Tom Rothamel 087f4aaa5b Merge pull request #1449 from Alexandre-T/master
French translation of "The Question" game.
2018-05-07 19:45:54 -04:00
Tom Rothamel 6e8835a5b7 Store the scope in the new cache when using a screen. 2018-05-06 19:21:35 -04:00
Tom Rothamel 213359d212 More compatible version of the gl test.
This should work better now that Dissolve has alpha=True.
2018-05-05 13:34:12 -04:00
Tom Rothamel 6ac58511a0 Enable the zipping of files > 2GB. 2018-05-05 10:28:10 -04:00
Tom Rothamel dec7b962ea Document Displayable Prefix 2018-05-05 08:47:07 -04:00
Tom Rothamel 2cf0f96b0d Add config.displayable_prefix
This lets creators make their own displayables available in the
same way that image files, images, and colors are.
2018-05-04 22:26:15 -04:00
Alexandre-T 4cc5e00745 Merge remote-tracking branch 'upstream/master' 2018-05-04 19:48:03 +02:00
Tom Rothamel e649c46e60 Remove debug print. 2018-05-03 18:47:27 -04:00
Tom Rothamel 173fcc32e1 Treat RUBY_ALT like RUBY_TOP everywhere.
Fixes an issue where RUBY_ALT would leave blank space,
and perhaps other possible problems.
2018-05-03 18:46:26 -04:00
Tom Rothamel f5f9809b95 Remove usage of style. 2018-05-03 01:21:49 -04:00
Tom Rothamel 0f0da971ec Document alternate ruby text. 2018-05-03 01:10:21 -04:00
Tom Rothamel d53f49ad5d Add support for alternative ruby text.
This allows two blocks of ruby text to appear at once, such as
one above the text and one below it. The use case this is intended
to support is a project that would like both a translation and
pronunciation guide at the same time.
2018-05-02 22:17:37 -04:00
Tom Rothamel 57dfe4fbf3 doc: Changelog and doc sl2 index. 2018-05-02 10:27:44 -04:00
Alexandre-T 32d4e453e7 French translation of "The Question" game. 2018-05-02 09:23:06 +02:00
Tom Rothamel c3f5cf4245 Merge pull request #1448 from Alexandre-T/master
French translation of the tutorial.
2018-05-01 17:15:26 -04:00
Alexandre-T 1d040a5ad3 French translation of the tutorial. 2018-05-01 18:11:56 +02:00
Tom Rothamel b118b6b629 Allow the Rollback action to be given arguments. 2018-04-30 21:14:50 -04:00
Tom Rothamel 3af70a67f6 Add the scroll action. 2018-04-29 17:43:59 -04:00
Tom Rothamel 9415995ba0 li: Document poses and some FAQs. 2018-04-29 12:25:53 -04:00
Tom Rothamel 4602d1cb8d li: Document variant and prefix. 2018-04-29 11:45:38 -04:00
Tom Rothamel cb774b625c li: Add the prefix and variant properties to group.
The prefix property gives a prefix that applies to attributes
defined within the group.

The variant property adds an additional section to file and
image names defined within the group.
2018-04-29 01:48:06 -04:00
Tom Rothamel 49c995d1c4 li: Improve parsing.
Using l.keyword() and l.name() rather than l.match, so we don't
match prefixes improperly.
2018-04-29 00:39:51 -04:00
Tom Rothamel f0396aeeb4 li: Add attribute_function.
This is a function that can add (or perhaps, remove) attributes
after the attributes have been selected or before attributes have
been shown.
2018-04-29 00:31:00 -04:00
Tom Rothamel c35086e4a5 Fix doc typo. 2018-04-28 12:50:19 -04:00
Tom Rothamel 9d52a1e626 li: Document if_also->if_all, if_any. 2018-04-28 12:31:20 -04:00
Tom Rothamel 4074f45c6d li: An attribute can take the null keyword.
For now, this just adds a Null displayable, but that might change
in the future. Semantically, it lets the creator declare an
attribute that exists for the use of if_all, if_any, if_not,
and the upcoming attribute modifier function.
2018-04-28 12:06:57 -04:00
Tom Rothamel 409bab07bb Merge pull request #1443 from Alexandre-T/master
LiveComposite replaced by Composite in tutorial and its translations.
2018-04-28 09:01:30 -04:00
Alexandre-T 8771045493 LiveComposite replaced by Composite in tutorial and its translations. 2018-04-28 08:33:17 +02:00
Tom Rothamel db679ca2b3 Dissolve now defaults to alpha=True
The idea is to let the same dissolves be used throughout Ren'Py,
rather than having alpha/noalpha versions of each.
2018-04-28 01:36:06 -04:00
Tom Rothamel 5328f81e20 Document dict transitions. 2018-04-28 01:11:06 -04:00
Tom Rothamel 1c42c156d5 Allow renpy.transition to take a dict transition. 2018-04-28 01:10:38 -04:00
Tom Rothamel 766b158684 Allow the with statement/clause to take a dict of layer transitions.
With this change, writing:

    define dis = { "master" : Dissolve(0.5, alpha=True) }

will apply the dissolve operation to the master layer, as if

    $ renpy.transition(Dissolve(0.5, alpha=True), layer="master")

had been called instead.
2018-04-27 22:45:46 -04:00
Tom Rothamel 5d74e7396b Explicitly select the new console-syle rollback labels.
Since they're not useful outside of the console, and trying
to auto-select breaks after_load.

Fixes #1439.
2018-04-27 01:30:15 -04:00
Tom Rothamel ba832e5e3d Fix signature of render.
Per #1442. Keeping open, so after 7.0 I can evaluate and see if
the opaque optimization even matters anymore, or should be
removed.
2018-04-26 08:55:46 -04:00
Tom Rothamel bbf9f36c47 Implement eval for non-default stores.
Fixes #1441.
2018-04-26 01:43:34 -04:00
Tom Rothamel 83620695dc li: Evaluate expressions using store.eval.
This ensures that expressions are transformed and evaluated in
the right scope.

Fixes #1438, points 2 and 3.
2018-04-25 22:32:52 -04:00
Tom Rothamel 3861f19fa1 Rewrite checking and ordering image attributes.
The main reason for this is so that the _list_attributes and
_choose_attributes functions are used with a multi-part image
name.

Now that it's possible to list attributes from multiple places,
we have to combine them. A topological sort on the order of
attributes is used for this.
2018-04-25 01:06:48 -04:00
Tom Rothamel 21f3e5635c li: Fixed how auto works with an layerd image with a multi-part name. 2018-04-25 01:06:02 -04:00
Tom Rothamel 87f2ed02d4 Change the type of renpy.image.image_attributes.
This doesn't affect Ren'Py, but will make it possible to pull attributes
from a displayable.
2018-04-24 22:45:10 -04:00
Tom Rothamel b393f1fd98 Remove debug print. 2018-04-24 09:02:51 -04:00
Tom Rothamel 748ada5378 li: Move displayable wrapping to a method. 2018-04-23 23:52:53 -04:00
Tom Rothamel 437b742163 li: Some changes.
* if_also becomes if_all.
* if_any has been added.
* if_any, if_all, and if_not have been added to conditions.
* The image takes style properties, not transition properties.

And the code has been cleaned up to remove some duplication.
2018-04-23 23:12:05 -04:00
Tom Rothamel 2232421843 Fix problem with a missing oldtutorial. 2018-04-22 22:10:44 -04:00
Tom Rothamel 8912a0a73a Minor fixes to translations. 2018-04-22 16:21:34 -04:00
Tom Rothamel 73bd716090 Update piglatin. 2018-04-22 16:21:01 -04:00
Tom Rothamel cc272addc2 Merge pull request #1434 from nyaatrap/master
Update japanese
2018-04-22 16:20:28 -04:00
Tom Rothamel c2f626d3c7 Update changelog. 2018-04-22 16:19:50 -04:00
Tom Rothamel fbe4a4e7e2 ShowTransient couldn't take positional arguments.
As it would try to pass transition twice.
2018-04-22 16:16:09 -04:00
nyaatraps b28eebff4f Update japanese 2018-04-22 16:06:43 +09:00
Tom Rothamel 3368cfe3ab Document incompatible changes, add fix to changelog. 2018-04-21 23:26:48 -04:00
Tom Rothamel 3ff9f2d135 Update the changelog. 2018-04-21 22:34:16 -04:00
Tom Rothamel b5306f1065 Update sponsor documentation. 2018-04-21 11:24:12 -04:00
Tom Rothamel 4396d146e2 id: The director should not hide TIMEEVENTS.
Fixes #1432, and the director blocking the notify window from hiding itself.
2018-04-21 08:54:59 -04:00
Tom Rothamel be5f03e7b5 li: Documentation. 2018-04-20 23:51:26 -04:00
Tom Rothamel 647459ef70 li: More documentation. 2018-04-20 23:27:34 -04:00
Tom Rothamel be57f1070d Allow groups to take if_also and if_not. 2018-04-20 22:41:47 -04:00
Tom Rothamel 17840ad937 Use come-from to implement non-greedy rollback.
This fixes a problem in the code:

  default x = False

  label start:
      $ x = True
      "[ x ]"

When accessing the console. The problem is that the changes to rollback
in 6.14 cause there to only be one Rollback here, which is right after
label start. This means that when in the console, x loses its changed
value.

To fix this, when doing a non-greedy rollback, we rollback the minimum
we can, then start executing forwards until we reach the current
statement. This was implemented by adding a "come from" feature
to the context - when a statement is started, the current come
from is checked, and a label is called if it's been reached.
2018-04-20 00:22:50 -04:00
Tom Rothamel dfbb649dfb Fix typo. 2018-04-20 00:22:02 -04:00
Tom Rothamel 21456342c2 li: Turn auto and default into keywords.
It just reads better without True scattered all over the place,
signifying very little.
2018-04-19 23:23:30 -04:00
Tom Rothamel cf1f140ff6 li: Documentation. 2018-04-19 23:06:25 -04:00
Tom Rothamel 9a74b97bbe li: Parse properties on the first line of a group. 2018-04-19 23:03:37 -04:00
Tom Rothamel fd47a942fe Rename to LayeredImage/layeredimage. 2018-04-19 02:23:51 -04:00
Tom Rothamel e22256d631 li: Document layered images.
Which is the final name, at least for the moment.
2018-04-19 02:20:22 -04:00
Tom Rothamel 16782c5847 Fix the SetField documentation. 2018-04-19 02:18:43 -04:00
Tom Rothamel 43e6b37d43 id: Filter prefixed tags.
Layer images tend to use displayables with names like eileen_mouth_smile,
which have the real image name, eileen, as a prefix. We don't want these
cluttering up the id, so filter tags like this out.
2018-04-19 00:11:27 -04:00
Tom Rothamel 0e6a32cbf2 li: Move to the layerimage namespace.
There are a few twiddleable settings here, so they should be in a
public namespace.
2018-04-18 23:44:08 -04:00
Tom Rothamel 0c0bde2315 li: Same change, for the image name. 2018-04-18 23:37:52 -04:00
Tom Rothamel 70e7c38e7e li: Change the pattern for auto-attribute-image names.
We've gone from "eileen mouth happy" to "eileen_mouth_happy". This
is to prevent potential problems - with the spaces, it's possible
for the images that are used in a LayerImage to conflict with
the image itself, causing huge problems.

When there is an underscore in the name, that's mitigated.
2018-04-18 23:33:53 -04:00
Tom Rothamel 2d9c11430f Report an error if an image refers to itself. 2018-04-18 22:54:47 -04:00
Tom Rothamel 14f84a9329 ai(li): rename AttributeImage to LayerImage. 2018-04-18 01:17:55 -04:00
Tom Rothamel d9cdb6e8e1 Expose Composite, Crop, Tile.
Fixes #1433.
Fixes #1430.
2018-04-17 08:35:15 -04:00
Tom Rothamel 18c25fd601 ai: Allow a value for predict_all. 2018-04-17 01:42:03 -04:00
Tom Rothamel ca759eb72e ai: Add if_also and if_not.
These clauses allow attributes (or implementations of attributes) to
interact with each other.
2018-04-17 01:28:49 -04:00
Tom Rothamel 559d57f4cc id: Allow the user to move the id to the bottom of the screen. 2018-04-16 20:18:16 -04:00
Tom Rothamel 27c821c010 Fix accidental translation of the Russian director. 2018-04-16 18:51:54 -04:00
Tom Rothamel 3a064847d2 Add keywords.
* Index from sl2 for.
* Always from ai.
2018-04-16 02:22:03 -04:00
Tom Rothamel 8dc1124dbf ai: Add the always statement.
A convenient and fast way to include a displayable that must
always be there.
2018-04-16 02:17:42 -04:00
Tom Rothamel cd5d9a28ba sl2: Add an index expression to for.
This makes it possible to change which entry in the cache corresponds
to an entry in the list being iterated over, which can fix certain
problems where those don't match up.
2018-04-16 01:43:49 -04:00
Tom Rothamel 61447a9f83 ai: Report and display unknown attributes. 2018-04-15 17:52:40 -04:00
Tom Rothamel 6db5afa132 ai: Fix and improve _list_attributes.
It now has the correct API, and also handles sorting the
attributes in a sensible manner.
2018-04-15 15:22:35 -04:00
Tom Rothamel efa6d28f83 Automatic definition of attributes in groups. 2018-04-15 14:05:37 -04:00
Tom Rothamel dba7363be7 Move images to being defined at the start of init zero. 2018-04-15 13:22:23 -04:00
Tom Rothamel ef254d5a7d Land AttributeImage.
This was originally developed at https://github.com/renpy/ai .
2018-04-14 15:07:19 -04:00
Tom Rothamel ee3e9fcf30 Update changelog for Ren'Py 7.0. 2018-04-14 00:10:08 -04:00
Tom Rothamel a06262c2b3 Fix typo.
Fixes #1429.
2018-04-13 16:55:07 -04:00
Tom Rothamel 779a5472d4 Update keywords. 2018-04-13 16:53:41 -04:00
Tom Rothamel d1c16835c2 Include attributeimage keywords. 2018-04-12 22:29:42 -04:00
Tom Rothamel d68d7e205f Don't try to distribute oldtutorial or templates. 2018-04-09 08:29:55 -04:00
Tom Rothamel 0ffbe3cc0a Allow the launcher to detect the presence and absence of the old
templates and tutorial.
2018-04-08 19:27:06 -04:00
Tom Rothamel f0bfc27267 Remove the files for the old tutorial and legacy templates.
We've been on the new stuff for a year now, and I've gotten (mostly)
good feedback on everything. So it's time to shrink the distribution
by removing this legacy content.

Thanks to everyone who contributed this - your contributions will
live on in git and the Ren'Py 6 downloads.
2018-04-08 19:21:09 -04:00
Tom Rothamel 20e50a9e06 Fix translate None instead of translate russian. 2018-04-08 08:39:15 -04:00
Tom Rothamel c67f88b7f3 Update the screen before checking _handles_event, for non-transient screens.
Fixes #1426.

During skipping, a normal screen was never updated, which means
that the hide handler was not called. This changes it so we force
an update if need be, provided the screen is not transient.

Why not transient? It's because a transient screen is used for
the window in with_none, and updating that screen is expensive
for the 90% of time it isn't seen.
2018-04-08 01:28:47 -04:00
Tom Rothamel 16feb53d14 Improve duplicate translation errors. 2018-04-06 22:40:09 -04:00
484 changed files with 15130 additions and 52649 deletions
+4 -4
View File
@@ -11,14 +11,14 @@ on feature branches.
Getting Started
===============
Ren'Py depends on a number of python modules written in Cython and C. For
changes to Ren'Py that only involve python modules, you can use the modules
Ren'Py depends on a number of Python modules written in Cython and C. For
changes to Ren'Py that only involve Python modules, you can use the modules
found in the latest nightly build. Otherwise, you'll have to compile the
modules yourself.
The development scripts assume a POSIX-like platform. The scripts should run
on Linux or Mac OS X, and can be made to run on Windows using an environment
like Msys.
on Linux or macOS, and can be made to run on Windows using an environment
like MSYS.
Nightly Build
-------------
+1 -1
View File
@@ -28,7 +28,7 @@ init python:
ANDROID_OK = 5
NO_RAPT_TEXT = _("To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore.")
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
-2
View File
@@ -333,12 +333,10 @@ init python:
build.classify_renpy("gui/game/gui/", None)
source_and_binary("launcher")
source_and_binary("templates", binary=None)
source_and_binary("gui", binary=None)
source_and_binary("the_question")
source_and_binary("tutorial")
source_and_binary("oldtutorial")
# docs.
build.classify_renpy("doc/", "source")
+19 -5
View File
@@ -36,6 +36,7 @@ init python in distribute:
class ZipFile(zipfile.ZipFile):
def write_with_info(self, zinfo, filename):
"""Put the bytes from filename into the archive under the name
arcname."""
@@ -66,8 +67,13 @@ init python in distribute:
# Must overwrite CRC and sizes with correct data later
zinfo.CRC = CRC = 0
zinfo.compress_size = compress_size = 0
zinfo.file_size = file_size = 0
self.fp.write(zinfo.FileHeader())
file_size = 0
zip64 = self._allowZip64 and \
zinfo.file_size * 1.05 > zipfile.ZIP64_LIMIT
self.fp.write(zinfo.FileHeader(zip64))
if zinfo.compress_type == zipfile.ZIP_DEFLATED:
cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION,
zlib.DEFLATED, -15)
@@ -92,11 +98,19 @@ init python in distribute:
zinfo.compress_size = file_size
zinfo.CRC = CRC
zinfo.file_size = file_size
if not zip64 and self._allowZip64:
if file_size > zipfile.ZIP64_LIMIT:
raise RuntimeError('File size has increased during compressing')
if compress_size > zipfile.ZIP64_LIMIT:
raise RuntimeError('Compressed size larger than uncompressed size')
# Seek backwards and write CRC and file sizes
position = self.fp.tell() # Preserve current position in file
self.fp.seek(zinfo.header_offset + 14, 0)
self.fp.write(struct.pack("<LLL", zinfo.CRC, zinfo.compress_size,
zinfo.file_size))
self.fp.seek(zinfo.header_offset, 0)
self.fp.write(zinfo.FileHeader(zip64))
self.fp.seek(position, 0)
self.filelist.append(zinfo)
self.NameToInfo[zinfo.filename] = zinfo
+9 -4
View File
@@ -51,6 +51,7 @@ init python:
return rv
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
default persistent.legacy = False
default persistent.force_new_tutorial = False
@@ -184,12 +185,16 @@ screen preferences:
if renpy.windows:
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
textbutton _("Force new tutorial") style "l_checkbox" action [ ToggleField(persistent, "force_new_tutorial"), project.SelectTutorial(True) ]
if project.manager.get("oldtutorial"):
textbutton _("Legacy options") style "l_checkbox" action ToggleField(persistent, "legacy")
textbutton _("Force new tutorial") style "l_checkbox" action [ ToggleField(persistent, "force_new_tutorial"), project.SelectTutorial(True) ]
if persistent.legacy:
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
if show_legacy:
textbutton _("Legacy options") style "l_checkbox" action ToggleField(persistent, "legacy")
if persistent.legacy:
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
+3
View File
@@ -589,6 +589,9 @@ init python in project:
if language is None:
rv = p
elif rv is None:
rv = p
elif os.path.exists(os.path.join(p.path, "game", "tl", _preferences.language)):
rv = p
+2 -2
View File
@@ -34,8 +34,8 @@ translate arabic strings:
new "لبناء ملفات الأندرويد, الرجاء تحميل RAPT, ثم فك الضغط عن الملف ووضعه في مجلد رينباي. قد تحتاج لإعادة تشغيل رينباي ليعمل بشكل صحيح."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate finnish strings:
new "Luodaksesi Android-sovelluksia, ole hyvä ja lataa RAPT, pura se, ja aseta se Ren'Py kansioon. Tämän jälkeen käynnistä Ren'Py uudelleen."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate french strings:
new "Pour compiler les paquets Android, veuillez télécharger RAPT, le décompresser et le placer dans le répertoir de RenPy. Ensuite, redémarrez le lanceur RenPy."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour compiler les paquets Android depuis Windows. Le JDK nest pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Téléchargez et installez le JDK{/a}, puis relancez le lanceur RenPy."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour compiler les paquets Android depuis Windows. Le JDK nest pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Téléchargez et installez le JDK{/a}, puis relancez le lanceur RenPy."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate german strings:
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT herunter, entpacken Sie es und platzieren Sie es im RenPy Verzeichnis. Starten Sie dann bitte RenPy neu."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Ein 32-bit Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den RenPy-Launcher neu."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Ein x86 Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den RenPy-Launcher neu."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate greek strings:
new "Για να χτίσετε πακέτα για το Android, παρακαλούμε κατεβάστε το RAPT και τοποθετήστε το στον φάκελο της Ren'Py. Κατόπιν αυτού, επανεκκινήστε τον Εκκινητή."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Αν εργάζεστε σε Windows, για τη δημιουργία πακέτων Android, απαιτείται ένα 32-bit Java Development Kit. Το JDK είναι διαφορετικό του JRE, οπότε μπορεί να έχετε Java χωρίς όμως να έχετε το JDK. Παρακαλoύμε λοιπόν να {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html} κατεβάσετε κι εγκαταστήσετε από εδώ το JDK{/a} και κατόπιν να επανεκκινήσετε τον Εκκινητή της Ren'Py. "
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Αν εργάζεστε σε Windows, για τη δημιουργία πακέτων Android, απαιτείται ένα x86 Java Development Kit. Το JDK είναι διαφορετικό του JRE, οπότε μπορεί να έχετε Java χωρίς όμως να έχετε το JDK. Παρακαλoύμε λοιπόν να {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html} κατεβάσετε κι εγκαταστήσετε από εδώ το JDK{/a} και κατόπιν να επανεκκινήσετε τον Εκκινητή της Ren'Py. "
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate indonesian strings:
new "Untuk membuat package Android, silahkan download RAPT, unzip/extrak, dan taruh di direktori Ren,Py. Dan restart launcher Ren'Py."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Java Development Kit 32-bit di perlukan untuk membuat package Android di Windows, JDK itu berbeda dari JRE, jadi sangat mungkin kamu memiliki java tanpa JDK\n\nTolong {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Download dan install JDK{/a}, lalu restart launcher Ren'Py "
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Java Development Kit 32-bit di perlukan untuk membuat package Android di Windows, JDK itu berbeda dari JRE, jadi sangat mungkin kamu memiliki java tanpa JDK\n\nTolong {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Download dan install JDK{/a}, lalu restart launcher Ren'Py "
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate italian strings:
new "Per compilare un pacchetto di Android si prega di scaricare RAPT, estrarlo, posizionarlo nella cartella di Ren'Py e riavviare il launcher di Ren'Py."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\nSi prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\nSi prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+262 -7
View File
@@ -386,31 +386,31 @@ translate japanese strings:
# 00director.rpy:1576
old "Statement:"
new "Statement(命令):"
new "ステートメント:"
# 00director.rpy:1597
old "Tag:"
new "Tagタグ:"
new "画像タグ:"
# 00director.rpy:1613
old "Attributes:"
new "Attributes属性:"
new "画像属性:"
# 00director.rpy:1631
old "Transforms:"
new "Transforms(画像変形):"
new "変換:"
# 00director.rpy:1650
old "Behind:"
new "Behind(裏に表示:"
new "背後に表示:"
# 00director.rpy:1669
old "Transition:"
new "Transition(遷移演出):"
new "トランジション:"
# 00director.rpy:1687
old "Channel:"
new "ャンセル"
new "ャンネル:"
# 00director.rpy:1705
old "Audio Filename:"
@@ -439,3 +439,258 @@ translate japanese strings:
old "{size_mb:,.1f} MB in {count} textures."
new "{size_mb:,.1f} MB in {count} textures."
translate japanese strings:
# 00action_file.rpy:344
old "Save slot %s: [text]"
new "スロット%s: [text]にセーブ"
# 00action_file.rpy:417
old "Load slot %s: [text]"
new "スロット%s: [text]をロード"
# 00action_file.rpy:459
old "Delete slot [text]"
new "スロット[text]を削除"
# 00action_file.rpy:539
old "File page auto"
new "オートファイルページ"
# 00action_file.rpy:541
old "File page quick"
new "クイックファイルページ"
# 00action_file.rpy:543
old "File page [text]"
new "ファイルページ[text]"
# 00action_file.rpy:733
old "Next file page."
new "次のファイルページ"
# 00action_file.rpy:797
old "Previous file page."
new "前のファイルページ"
# 00action_file.rpy:876
old "Quick save."
new "クイックセーブ"
# 00action_file.rpy:895
old "Quick load."
new "クイックロード"
# 00action_other.rpy:344
old "Language [text]"
new "言語 [text]"
# 00director.rpy:1476
old "⬆"
new "⬆"
# 00director.rpy:1482
old "⬇"
new "⬇"
# 00library.rpy:150
old "bar"
new "バー"
# 00library.rpy:151
old "selected"
new "選択中"
# 00library.rpy:152
old "viewport"
new "ビューポート"
# 00library.rpy:153
old "horizontal scroll"
new "水平スクロール"
# 00library.rpy:154
old "vertical scroll"
new "垂直スクロール"
# 00library.rpy:155
old "activate"
new "有効"
# 00library.rpy:156
old "deactivate"
new "無効"
# 00library.rpy:157
old "increase"
new "増加"
# 00library.rpy:158
old "decrease"
new "減少"
# 00preferences.rpy:207
old "display"
new "表示"
# 00preferences.rpy:219
old "transitions"
new "トランジション"
# 00preferences.rpy:228
old "skip transitions"
new "トランジションをスキップ"
# 00preferences.rpy:230
old "video sprites"
new "ビデオ スプライト"
# 00preferences.rpy:239
old "show empty window"
new "空のウィンドウを表示"
# 00preferences.rpy:248
old "text speed"
new "テキストスピード"
# 00preferences.rpy:256
old "joystick"
new "ジョイスティック"
# 00preferences.rpy:256
old "joystick..."
new "ジョイスティック..."
# 00preferences.rpy:263
old "skip"
new "スキップ"
# 00preferences.rpy:266
old "skip unseen [text]"
new "未読の[text]をスキップ"
# 00preferences.rpy:271
old "skip unseen text"
new "未読のテキストをスキップ"
# 00preferences.rpy:273
old "begin skipping"
new "スキップ開始"
# 00preferences.rpy:277
old "after choices"
new "選択肢後"
# 00preferences.rpy:284
old "skip after choices"
new "選択肢後もスキップ"
# 00preferences.rpy:286
old "auto-forward time"
new "オート待ち時間"
# 00preferences.rpy:300
old "auto-forward"
new "オート送り"
# 00preferences.rpy:307
old "Auto forward"
new "オート送り"
# 00preferences.rpy:310
old "auto-forward after click"
new "クリック後もオート"
# 00preferences.rpy:319
old "automatic move"
new "自動ムービー"
# 00preferences.rpy:328
old "wait for voice"
new "ボイスを待つ"
# 00preferences.rpy:337
old "voice sustain"
new "voice sustain"
# 00preferences.rpy:346
old "self voicing"
new "セルフボイシング"
# 00preferences.rpy:355
old "clipboard voicing"
new "クリップボードボイシング"
# 00preferences.rpy:364
old "debug voicing"
new "ボイシングのデバッグ"
# 00preferences.rpy:373
old "emphasize audio"
new "オーディオの強調"
# 00preferences.rpy:382
old "rollback side"
new "ロールバックサイド"
# 00preferences.rpy:392
old "gl powersave"
new "GLパワーセーブ"
# 00preferences.rpy:398
old "gl framerate"
new "GLフレームレート"
# 00preferences.rpy:401
old "gl tearing"
new "GLティアリング"
# 00preferences.rpy:413
old "music volume"
new "音楽の音量"
# 00preferences.rpy:414
old "sound volume"
new "効果音の音量"
# 00preferences.rpy:415
old "voice volume"
new "ボイスの音量"
# 00preferences.rpy:416
old "mute music"
new "音楽をミュート"
# 00preferences.rpy:417
old "mute sound"
new "効果音をミュート"
# 00preferences.rpy:418
old "mute voice"
new "ボイスをミュート"
# 00preferences.rpy:419
old "mute all"
new "音声を全てミュート"
# _developer\developer.rpym:57
old "Show Image Load Log (F4)"
new "画像ロードログを表示する (F4)"
# _developer\developer.rpym:60
old "Hide Image Load Log (F4)"
new "画像ロードログを隠す (F4)"
# _developer\developer.rpym:447
old "Type to filter: "
new "フィルタして検索: "
# _developer\developer.rpym:575
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "テクスチャー: [tex_count] ([tex_size_mb:.1f] MB)"
# _developer\developer.rpym:579
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "イメージキャッシュ: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
+28
View File
@@ -203,7 +203,35 @@ translate japanese strings:
translate japanese strings:
# 00gltest.rpy:70
old "Renderer"
new "レンダラー"
# 00gltest.rpy:89
old "NPOT"
new "NPOT"
# 00gltest.rpy:131
old "Powersave"
new "パワーセーブ"
# 00gltest.rpy:145
old "Framerate"
new "フレームレート"
# 00gltest.rpy:149
old "Screen"
new "スクリーン"
# 00gltest.rpy:153
old "60"
new "60"
# 00gltest.rpy:157
old "30"
new "30"
# 00gltest.rpy:163
old "Tearing"
new "ティアリング"
+8 -8
View File
@@ -7,7 +7,7 @@ translate japanese strings:
# gui.rpy:5
old "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset は、このファイルの init コードを他のファイルよりも先に実行しています。"
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset ステートメントは、このファイルの init コードを他のファイルよりも先に実行しています。"
# gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
@@ -35,15 +35,15 @@ translate japanese strings:
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## スモールカラー。明るさを調節する必要のあるクイックメニューなどの小さなテキストボタンに使います。"
new "## スモールカラー。クイックメニューなどの、明るさを調節する必要のある小さなテキストボタンに使います。"
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## hover(フォーカス中)のテキストボタンのカラー。また、バーの充足部分(左側)・hover のスライダーのつまみ等の画像を再生成するときにも使われます。"
new "## hover(フォーカス中)のテキストボタンのカラー。また、バーの充足部分(左側)スライダーのつまみ等の画像を再生成するときにも使われます。"
# gui.rpy:39
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## selected(選択中)のテキストボタンのカラー。ボタンは、現在の環境設定の値や表示中のスクリーンと一致するものが選択中になります。"
new "## selected(選択中)のテキストボタンのカラー。ボタン現在のスクリーンであったり、環境設定の値と一致したりすると、ボタンは選択中になります。"
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
@@ -51,11 +51,11 @@ translate japanese strings:
# gui.rpy:46
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## バーの非充足部分(右側)やスライダーの背景部分のカラー。バーやスライダーのカラーは、ゲームでは直接使われず GUI を変更・更新した場合の画像生成に使われます。"
new "## バーの非充足部分(右側)やスライダーの背景部分のカラー。バーやスライダーのカラーは直接使われず GUI を変更・更新した場合の画像生成に使われます。"
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## 次の text_color は台詞や選択肢のテキストのカラーです。その次の interface_text_color はヒストリーやヘルプなどそれ以外のテキストのカラーです。"
new "## text_color は台詞や選択肢のテキストのカラーです。interface_text_color はヒストリーやヘルプなどそれ以外のテキストのカラーです。"
# gui.rpy:56
old "## Fonts and Font Sizes"
@@ -284,7 +284,7 @@ radio と check は環境設定の各項目のボタン(デフォルトでは
# gui.rpy:279
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## 以下の変数は、インターフェースのコンポーネントを収納するフレームを制御します。フレームは、ウィンドウやオーバーレイが用いられない場面で使われます。"
new "## 以下の変数は、インターフェースのコンポーネントを収納するフレームを制御します。フレームは、ウィンドウやオーバーレイが用意されていない場面で使われます。"
# gui.rpy:282
old "## Generic frames that are introduced by player code."
@@ -450,7 +450,7 @@ translate japanese strings:
# gui.rpy:5
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset により、このファイルの init 文は他のファイルの init 文よりも先に実行されます。"
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset ステートメントにより、このファイルの init 文は他のファイルの init 文よりも先に実行されます。"
# gui.rpy:282
old "## Generic frames."
+41 -2
View File
@@ -34,8 +34,8 @@ translate japanese strings:
new "Android パッケージをビルドするには、RAPT をダウンロード・展開し、Ren'Py のディレクトリーに設置して下さい。その後、Ren'Py を再起動して下さい。"
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Windows では、Android パッケージのビルドに 32-bit の Java 開発キットが必要です。JDK は JRE とは異なるため、JDK が無くても Java が利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}JDK のダウンロードとインストール{/a}を行い、Ren'Py ランチャーを再起動して下さい。"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Windows では、Android パッケージのビルドに 32-bit の Java 開発キットが必要です。JDK は JRE とは異なるため、JDK が無くても Java が利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK のダウンロードとインストール{/a}を行い、Ren'Py ランチャーを再起動して下さい。"
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -1283,3 +1283,42 @@ translate japanese strings:
old "The height must be a number."
new "画面の高さは数字でなければなりません。"
translate japanese strings:
# editor.rpy:152
old "(Recommended) A modern and approachable text editor."
new "(推奨)モダンで親しみやすいテキストエディターです。"
# editor.rpy:164
old "Up to 150 MB download required."
new "最大 150 MB のダウンロードが必要です。"
# editor.rpy:178
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input."
new "成熟したエディターです。Editra は中国語・韓国語・日本語の入力に必要な IME のサポートに欠陥があります。"
# editor.rpy:179
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "成熟したエディターです。Editra は中国語・韓国語・日本語の入力に必要な IME のサポートに欠陥があります。Linux では Editra は wxpython を必要とします。"
# editor.rpy:219
old "System Editor"
new "システムエディタ―"
# editor.rpy:235
old "None"
new "無効"
# editor.rpy:338
old "Edit [text]."
new "Edit [text]."
# front_page.rpy:215
old "Open project"
new "プロジェクトを開く"
# front_page.rpy:221
old "Actions"
new "アクション"
+15 -8
View File
@@ -15,7 +15,7 @@ translate japanese strings:
# options.rpy:12
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## 人が読みやすいゲーム名。ゲーム名はデフォルトのウィンドウタイトルに使われる他、インターフェースやエラーリポートにも表示されます。"
new "## 人の目で読み取れるゲーム名。ゲーム名はデフォルトのウィンドウタイトルに使われる他、インターフェースやエラーリポートにも表示されます。"
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
@@ -51,19 +51,19 @@ translate japanese strings:
# options.rpy:55
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
new "## サウンドやボイスの設定画面でユーザーがテストサウンドを再生できるようにしたい場合、以下の行をアンコメントしてサンプルサウンドを指定します。"
new "## サウンドやボイスの設定画面でユーザーがテストサウンドを再生可能にする場合、以下の行をアンコメントしてサンプルサウンドを指定します。"
# options.rpy:62
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
new "## 次の行をアンコメントしてオーディオファイルを指定すると、メインメニューで再生することができます。このファイルは、停止するか他の音楽が再生されない限りゲーム中で流れ続けます。"
new "## 次の行をアンコメントしてオーディオファイルを指定すると、メインメニューで再生されます。このファイルは、停止するか他の音楽が再生されない限りゲーム中で流れ続けます。"
# options.rpy:69
old "## Transitions"
new "## トランジション(画面遷移効果)"
new "## トランジション"
# options.rpy:71
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## 以下の変数は、メニュー切り替えなどのイベントに対するトランジションを設定します。各変数にはトランジションオブジェクトを指定します。トランジションを使わない場合は None に設定します。"
new "## 以下の変数は、メニュー切り替えなどのイベントに対するトランジションを設定します。各変数にはトランジションを指定します。トランジションを使わない場合は None に設定します。"
# options.rpy:75
old "## Entering or exiting the game menu."
@@ -79,7 +79,7 @@ translate japanese strings:
# options.rpy:91
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## メインメニューからゲームを開始する時のトランジションは、ここでは設定できません。代わりに、ゲーム開始後の最初のシーンで with ステートメント(文)を使ってください。"
new "## メインメニューからゲームを開始する時のトランジションは、ここでは設定できません。代わりに、ゲーム開始後の最初のシーンで with ステートメントを使ってください。"
# options.rpy:96
old "## Window management"
@@ -91,7 +91,7 @@ translate japanese strings:
# options.rpy:103
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## ゲーム開始後は、\"window show\"、\"window hide\"、\"window auto\" ステートメントで変更することができます。"
new "## ゲーム開始後でも \"window show\"、\"window hide\"、\"window auto\" ステートメントで変更することができます。"
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
@@ -199,7 +199,7 @@ translate japanese strings:
# options.rpy:196
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
new "## Mac のコード署名を有効にするため Apple Developer ID アプリケーション を含む文字列を設定します。必ず Apple が発行したあなたの ID に変更してください。"
new "## Mac のコード署名を有効にするため Apple Developer ID アプリケーション を含む文字列を設定します。必ず Apple が発行したあなたの ID に変更してください。"
translate japanese strings:
@@ -208,3 +208,10 @@ translate japanese strings:
old "## Between screens of the game menu."
new "## ゲームメニューのスクリーンを切り替える時のトランジション。"
translate japanese strings:
# options.rpy:31
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
new "## About(バージョン情報)スクリーンに表示されるテキスト。トリプルクオートの間にテキストを入力します。段落の間には空行を挿入して下さい。"
+7 -7
View File
@@ -19,7 +19,7 @@ translate japanese strings:
# screens.rpy:98
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
new "## このスクリーンは、テキストを表示するために \"what\" のIDを持つ text displayable(表示可能オブジェクト)を必ず作成しなければなりません。また、スタイルのプロパティを適用するために、ID \"who\" とID \"window\" を持つ text displayable も作成するといいでしょう。"
new "## このスクリーンは、テキストを表示するために \"what\" のIDを持つ text displayable を必ず作成しなければなりません。また、スタイルのプロパティを適用するために、ID \"who\" とID \"window\" を持つ text displayable も作成するといいでしょう。"
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -39,7 +39,7 @@ translate japanese strings:
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## このスクリーンは input のパラメーター を受け付けるために \"input\" をIDに持つ input displayable(表示可能オブジェクト)を作成する必要があります。"
new "## このスクリーンは input のパラメーター を受け付けるために \"input\" をIDに持つ input displayable を作成する必要があります。"
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -51,7 +51,7 @@ translate japanese strings:
# screens.rpy:207
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
new "## このスクリーンは、ゲーム内の選択肢を表示するに使います。items のパラメーターは caption(選択肢のテキスト)と action(クリック時の実行内容)を要素に持つオブジェクトのリスト(配列)です。"
new "## このスクリーンは、ゲーム内の選択肢を表示する menu ステートメントに使います。items のパラメーターは caption(選択肢のテキスト)と action(クリック時の実行内容)を要素に持つオブジェクトのリスト(配列)です。"
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -67,7 +67,7 @@ translate japanese strings:
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## クイックメニューはゲーム中つねに表示されるスクリーンで、ゲーム外の機能に素早くアクセスすることができます。"
new "## クイックメニューはゲーム中に常時表示されるスクリーンで、ゲーム外の機能に素早くアクセスすることができます。"
# screens.rpy:251
old "## Ensure this appears on top of other screens."
@@ -182,7 +182,7 @@ translate japanese strings:
# screens.rpy:369
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## use は、他のスクリーンを現在のスクリーンの内に表示するのに使います。メインメニューの実際のコンテンツは navigation(ナビゲーション)スクリーンです。"
new "## use ステートメントは、他のスクリーンを現在のスクリーンの内に表示するのに使います。メインメニューの実際のコンテンツは navigation(ナビゲーション)スクリーンです。"
# screens.rpy:413
old "## Game Menu screen"
@@ -218,7 +218,7 @@ translate japanese strings:
# screens.rpy:551
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
new "## 次の use は game_menu(ゲームメニュー)スクリーンをこのスクリーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox は game_menu スクリーンの中の viewport に配置されます。"
new "## 次の use ステートメントは game_menu(ゲームメニュー)スクリーンをこのスクリーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox は game_menu スクリーンの中の viewport に配置されます。"
# screens.rpy:561
old "Version [config.version!t]\n"
@@ -561,7 +561,7 @@ translate japanese strings:
# screens.rpy:1124
old "## Additional screens"
new "## 追加スクリーン"
new "## 付加的なスクリーン"
# screens.rpy:1128
old "## Confirm screen"
+5 -7
View File
@@ -5,13 +5,13 @@
# まず最初に、ゲームに使うキャラクター(台詞を表示するオブジェクト)を定義します。
# 最初のパラメーターは、テキストウィンドウに表示されるキャラクターの名前です。
# 一番目のパラメーターは、テキストウィンドウに表示されるキャラクターの名前です。
# color のパラメーターを追加すると、キャラクターの名前を色付けできます。
define e = Character('Eileen', color="#c8ffc8")
# label ステートメント(命令文)はゲームの処理をまとめてラベル付けします。
# label ステートメント(文)はゲームの処理をまとめてラベル付けします。
# ラベル間の移動は jump ステートメントか call ステートメントを使います。
# ゲームは start ラベルからスタートします。
@@ -20,12 +20,12 @@ label start:
# 背景を表示します。デフォルトではプレースホルダー(仮画像)を使用しますが、
# images ディレクトリーにファイル(ファイル名は "bg room.png" や "bg room.jpg"
# を追加すると表示することができます。
# を追加することにより表示できます。
scene bg room
# スプライト(立ち絵)を表示します。ここではプレースホルダーを使用していますが、
# images ディレクトリーに "eileen happy.png" と命名したファイルを追加すると
# images ディレクトリーに "eileen happy.png" などと命名したファイルを追加すると
# 表示することができます。
# at ステートメントは画像の表示する位置を調整します。
@@ -40,7 +40,7 @@ label start:
with dissolve
# 音楽を再生します。ここではタグを利用して無音を再生していますが、
# game ディレクトリーに "music.ogg" と命名したファイルを追加すると
# game ディレクトリーに "music.ogg" などと命名したファイルを追加すると
# play music "music.ogg" の形で再生することができます。
# 効果音を再生する時は play audio "filename" を使用します。
@@ -50,8 +50,6 @@ label start:
# 以下は台詞を表示します。
"Hello, world."
e "Ren'Py の新しいゲームを作成しました。"
e "ストーリー、画像、音楽を追加すれば、世界にリリースすることができます!"
+2 -2
View File
@@ -34,8 +34,8 @@ translate korean strings:
new "안드로이드 패키지를 만드려면, RAPT 파일을 내려받은 뒤에 렌파이 디렉토리에 압축 해제하세요. 그 다음 렌파이 런처를 재시작하세요."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "윈도우에서 안드로이드 패키지를 만드려면 32비트 JDK가 필요합니다. JDK는 JRE와 다르므로 PC에 JDK가 없는 자바가 설치되어 있을 수 있습니다.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}JDK를 내려받아 설치한 뒤{/a}, 렌파이 런처를 재시작해주세요."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "윈도우에서 안드로이드 패키지를 만드려면 32비트 JDK가 필요합니다. JDK는 JRE와 다르므로 PC에 JDK가 없는 자바가 설치되어 있을 수 있습니다.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK를 내려받아 설치한 뒤{/a}, 렌파이 런처를 재시작해주세요."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+54 -46
View File
@@ -157,175 +157,183 @@ translate piglatin strings:
old "%b %d, %H:%M"
new "%bay %day, %Hay:%May"
# 00action_file.rpy:344
# 00action_file.rpy:345
old "Save slot %s: [text]"
new "Avesay otslay %say: [text]"
# 00action_file.rpy:417
# 00action_file.rpy:421
old "Load slot %s: [text]"
new "Oadlay otslay %say: [text]"
# 00action_file.rpy:459
# 00action_file.rpy:466
old "Delete slot [text]"
new "Eleteday otslay [text]"
# 00action_file.rpy:539
# 00action_file.rpy:546
old "File page auto"
new "Ilefay agepay autoay"
# 00action_file.rpy:541
# 00action_file.rpy:548
old "File page quick"
new "Ilefay agepay uickqay"
# 00action_file.rpy:543
# 00action_file.rpy:550
old "File page [text]"
new "Ilefay agepay [text]"
# 00action_file.rpy:733
# 00action_file.rpy:740
old "Next file page."
new "Extnay ilefay agepay."
# 00action_file.rpy:797
# 00action_file.rpy:804
old "Previous file page."
new "Reviouspay ilefay agepay."
# 00action_file.rpy:858
# 00action_file.rpy:865
old "Quick save complete."
new "Uickqay avesay ompletecay."
# 00action_file.rpy:876
# 00action_file.rpy:883
old "Quick save."
new "Uickqay avesay."
# 00action_file.rpy:895
# 00action_file.rpy:902
old "Quick load."
new "Uickqay oadlay."
# 00action_other.rpy:344
# 00action_other.rpy:355
old "Language [text]"
new "Anguagelay [text]"
# 00director.rpy:703
# 00director.rpy:708
old "The interactive director is not enabled here."
new "Hetay interactiveay irectorday isay otnay enableday erehay."
# 00director.rpy:1490
# 00director.rpy:1478
old "⬆"
new "⬆"
# 00director.rpy:1484
old "⬇"
new "⬇"
# 00director.rpy:1548
old "Done"
new "Oneday"
# 00director.rpy:1498
# 00director.rpy:1558
old "(statement)"
new "(atementstay)"
# 00director.rpy:1499
# 00director.rpy:1559
old "(tag)"
new "(agtay)"
# 00director.rpy:1500
# 00director.rpy:1560
old "(attributes)"
new "(attributesay)"
# 00director.rpy:1501
# 00director.rpy:1561
old "(transform)"
new "(ansformtray)"
# 00director.rpy:1526
# 00director.rpy:1586
old "(transition)"
new "(ansitiontray)"
# 00director.rpy:1538
# 00director.rpy:1598
old "(channel)"
new "(annelchay)"
# 00director.rpy:1539
# 00director.rpy:1599
old "(filename)"
new "(ilenamefay)"
# 00director.rpy:1564
# 00director.rpy:1628
old "Change"
new "Hangecay"
# 00director.rpy:1566
# 00director.rpy:1630
old "Add"
new "Ddaay"
# 00director.rpy:1569
# 00director.rpy:1633
old "Cancel"
new "Ancelcay"
# 00director.rpy:1572
# 00director.rpy:1636
old "Remove"
new "Emoveray"
# 00director.rpy:1605
# 00director.rpy:1671
old "Statement:"
new "Tatementsay:"
# 00director.rpy:1626
# 00director.rpy:1692
old "Tag:"
new "Agtay:"
# 00director.rpy:1642
# 00director.rpy:1708
old "Attributes:"
new "Ttributesaay:"
# 00director.rpy:1660
# 00director.rpy:1726
old "Transforms:"
new "Ransformstay:"
# 00director.rpy:1679
# 00director.rpy:1745
old "Behind:"
new "Ehindbay:"
# 00director.rpy:1698
# 00director.rpy:1764
old "Transition:"
new "Ransitiontay:"
# 00director.rpy:1716
# 00director.rpy:1782
old "Channel:"
new "Hannelcay:"
# 00director.rpy:1734
# 00director.rpy:1800
old "Audio Filename:"
new "Udioaay Ilenamefay:"
# 00gui.rpy:368
# 00gui.rpy:370
old "Are you sure?"
new "Reaay ouyay uresay?"
# 00gui.rpy:369
# 00gui.rpy:371
old "Are you sure you want to delete this save?"
new "Reaay ouyay uresay ouyay antway otay eleteday histay avesay?"
# 00gui.rpy:370
# 00gui.rpy:372
old "Are you sure you want to overwrite your save?"
new "Reaay ouyay uresay ouyay antway otay overwriteay ouryay avesay?"
# 00gui.rpy:371
# 00gui.rpy:373
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Oadinglay illway oselay unsaveday rogresspay.\nReaay ouyay uresay ouyay antway otay oday histay?"
# 00gui.rpy:372
# 00gui.rpy:374
old "Are you sure you want to quit?"
new "Reaay ouyay uresay ouyay antway otay uitqay?"
# 00gui.rpy:373
# 00gui.rpy:375
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Reaay ouyay uresay ouyay antway otay eturnray otay hetay ainmay enumay?\nHistay illway oselay unsaveday rogresspay."
# 00gui.rpy:374
# 00gui.rpy:376
old "Are you sure you want to end the replay?"
new "Reaay ouyay uresay ouyay antway otay enday hetay eplayray?"
# 00gui.rpy:375
# 00gui.rpy:377
old "Are you sure you want to begin skipping?"
new "Reaay ouyay uresay ouyay antway otay eginbay kippingsay?"
# 00gui.rpy:376
# 00gui.rpy:378
old "Are you sure you want to skip to the next choice?"
new "Reaay ouyay uresay ouyay antway otay kipsay otay hetay extnay oicechay?"
# 00gui.rpy:377
# 00gui.rpy:379
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "Reaay ouyay uresay ouyay antway otay kipsay unseenay ialogueday otay hetay extnay oicechay?"
@@ -537,15 +545,15 @@ translate piglatin strings:
old "mute all"
new "utemay allay"
# 00preferences.rpy:498
# 00preferences.rpy:500
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Lipboardcay oicingvay enableday. Resspay 'iftshay+Cay' otay isableday."
# 00preferences.rpy:500
# 00preferences.rpy:502
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "Elfsay-oicingvay ouldway aysay \"[renpy.display.tts.last]\". Resspay 'altay+iftshay+Vay' otay isableday."
# 00preferences.rpy:502
# 00preferences.rpy:504
old "Self-voicing enabled. Press 'v' to disable."
new "Elfsay-oicingvay enableday. Resspay 'vay' otay isableday."
+53 -53
View File
@@ -221,215 +221,215 @@ translate piglatin strings:
old "## The save slot button."
new "## Hetay avesay otslay uttonbay."
# gui.rpy:231
# gui.rpy:233
old "## The width and height of thumbnails used by the save slots."
new "## Hetay idthway anday eighthay ofay humbnailstay useday ybay hetay avesay otsslay."
# gui.rpy:235
# gui.rpy:237
old "## The number of columns and rows in the grid of save slots."
new "## Hetay umbernay ofay olumnscay anday owsray inay hetay idgray ofay avesay otsslay."
# gui.rpy:240
# gui.rpy:242
old "## Positioning and Spacing"
new "## Ositioningpay anday Pacingsay"
# gui.rpy:242
# gui.rpy:244
old "## These variables control the positioning and spacing of various user interface elements."
new "## Hesetay ariablesvay ontrolcay hetay ositioningpay anday pacingsay ofay ariousvay useray interfaceay elementsay."
# gui.rpy:245
# gui.rpy:247
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## Hetay ositionpay ofay hetay eftlay idesay ofay hetay avigationnay uttonsbay, elativeray otay hetay eftlay idesay ofay hetay creensay."
# gui.rpy:249
# gui.rpy:251
old "## The vertical position of the skip indicator."
new "## Hetay erticalvay ositionpay ofay hetay kipsay indicatoray."
# gui.rpy:252
# gui.rpy:254
old "## The vertical position of the notify screen."
new "## Hetay erticalvay ositionpay ofay hetay otifynay creensay."
# gui.rpy:255
# gui.rpy:257
old "## The spacing between menu choices."
new "## Hetay pacingsay etweenbay enumay oiceschay."
# gui.rpy:258
# gui.rpy:260
old "## Buttons in the navigation section of the main and game menus."
new "## Uttonsbay inay hetay avigationnay ectionsay ofay hetay ainmay anday amegay enusmay."
# gui.rpy:261
# gui.rpy:263
old "## Controls the amount of spacing between preferences."
new "## Ontrolscay hetay amountay ofay pacingsay etweenbay referencespay."
# gui.rpy:264
# gui.rpy:266
old "## Controls the amount of spacing between preference buttons."
new "## Ontrolscay hetay amountay ofay pacingsay etweenbay referencepay uttonsbay."
# gui.rpy:267
# gui.rpy:269
old "## The spacing between file page buttons."
new "## Hetay pacingsay etweenbay ilefay agepay uttonsbay."
# gui.rpy:270
# gui.rpy:272
old "## The spacing between file slots."
new "## Hetay pacingsay etweenbay ilefay otsslay."
# gui.rpy:273
# gui.rpy:275
old "## The position of the main menu text."
new "## Hetay ositionpay ofay hetay ainmay enumay exttay."
# gui.rpy:277
# gui.rpy:279
old "## Frames"
new "## Ramesfay"
# gui.rpy:279
# gui.rpy:281
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## Hesetay ariablesvay ontrolcay hetay ooklay ofay amesfray hattay ancay ontaincay useray interfaceay omponentscay henway anay overlayay oray indowway isay otnay resentpay."
# gui.rpy:282
# gui.rpy:284
old "## Generic frames."
new "## Enericgay amesfray."
# gui.rpy:285
# gui.rpy:287
old "## The frame that is used as part of the confirm screen."
new "## Hetay amefray hattay isay useday asay artpay ofay hetay onfirmcay creensay."
# gui.rpy:288
# gui.rpy:290
old "## The frame that is used as part of the skip screen."
new "## Hetay amefray hattay isay useday asay artpay ofay hetay kipsay creensay."
# gui.rpy:291
# gui.rpy:293
old "## The frame that is used as part of the notify screen."
new "## Hetay amefray hattay isay useday asay artpay ofay hetay otifynay creensay."
# gui.rpy:294
# gui.rpy:296
old "## Should frame backgrounds be tiled?"
new "## Houldsay amefray ackgroundsbay ebay iledtay?"
# gui.rpy:298
# gui.rpy:300
old "## Bars, Scrollbars, and Sliders"
new "## Arsbay, Crollbarssay, anday Liderssay"
# gui.rpy:300
# gui.rpy:302
old "## These control the look and size of bars, scrollbars, and sliders."
new "## Hesetay ontrolcay hetay ooklay anday izesay ofay arsbay, crollbarssay, anday idersslay."
# gui.rpy:302
# gui.rpy:304
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## Hetay efaultday Uigay onlyay usesay idersslay anday erticalvay crollbarssay. Llaay ofay hetay otheray arsbay areay onlyay useday inay reatorcay-rittenway creenssay."
# gui.rpy:305
# gui.rpy:307
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## Hetay eighthay ofay orizontalhay arsbay, crollbarssay, anday idersslay. Hetay idthway ofay erticalvay arsbay, crollbarssay, anday idersslay."
# gui.rpy:311
# gui.rpy:313
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## Ruetay ifay arbay imagesay ouldshay ebay iledtay. Alsefay ifay heytay ouldshay ebay inearlylay caledsay."
# gui.rpy:316
# gui.rpy:318
old "## Horizontal borders."
new "## Orizontalhay ordersbay."
# gui.rpy:321
# gui.rpy:323
old "## Vertical borders."
new "## Erticalvay ordersbay."
# gui.rpy:326
# gui.rpy:328
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## Hatway otay oday ithway unscrollableay crollbarssay inay hetay uigay. \"idehay\" ideshay hemtay, hileway Onenay owsshay hemtay."
# gui.rpy:331
# gui.rpy:333
old "## History"
new "## Istoryhay"
# gui.rpy:333
# gui.rpy:335
old "## The history screen displays dialogue that the player has already dismissed."
new "## Hetay istoryhay creensay isplaysday ialogueday hattay hetay ayerplay ashay alreadyay ismissedday."
# gui.rpy:335
# gui.rpy:337
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## Hetay umbernay ofay ocksblay ofay ialogueday istoryhay Enray'Ypay illway eepkay."
# gui.rpy:338
# gui.rpy:340
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## Hetay eighthay ofay aay istoryhay creensay entryay, oray Onenay otay akemay hetay eighthay ariablevay atay hetay ostcay ofay erformancepay."
# gui.rpy:342
# gui.rpy:344
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## Hetay ositionpay, idthway, anday alignmentay ofay hetay abellay ivinggay hetay amenay ofay hetay peakingsay aracterchay."
# gui.rpy:349
# gui.rpy:351
old "## The position, width, and alignment of the dialogue text."
new "## Hetay ositionpay, idthway, anday alignmentay ofay hetay ialogueday exttay."
# gui.rpy:356
# gui.rpy:358
old "## NVL-Mode"
new "## Vlnay-Odemay"
# gui.rpy:358
# gui.rpy:360
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## Hetay Vlnay-odemay creensay isplaysday hetay ialogueday pokensay ybay Vlnay-odemay aracterschay."
# gui.rpy:360
# gui.rpy:362
old "## The borders of the background of the NVL-mode background window."
new "## Hetay ordersbay ofay hetay ackgroundbay ofay hetay Vlnay-odemay ackgroundbay indowway."
# gui.rpy:363
# gui.rpy:365
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
new "## Hetay aximummay umbernay ofay Vlnay-odemay entriesay Enray'Ypay illway isplayday. Henway oremay entriesay hantay histay areay otay ebay owshay, hetay oldestay entryay illway ebay emovedray."
# gui.rpy:367
# gui.rpy:369
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## Hetay eighthay ofay anay Vlnay-odemay entryay. Etsay histay otay Onenay otay avehay hetay entriesay ynamicallyday adjustay eighthay."
# gui.rpy:371
# gui.rpy:373
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## Hetay pacingsay etweenbay Vlnay-odemay entriesay henway uigay.vl_heightnay isay Onenay, anday etweenbay Vlnay-odemay entriesay anday anay Vlnay-odemay enumay."
# gui.rpy:388
# gui.rpy:390
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## Hetay ositionpay, idthway, anday alignmentay ofay vl_thoughtnay exttay (hetay exttay aidsay ybay hetay vl_narratornay aracterchay.)"
# gui.rpy:395
# gui.rpy:397
old "## The position of nvl menu_buttons."
new "## Hetay ositionpay ofay vlnay enu_buttonsmay."
# gui.rpy:399
# gui.rpy:401
old "## Localization"
new "## Ocalizationlay"
# gui.rpy:401
# gui.rpy:403
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
new "## Histay ontrolscay hereway aay inelay eakbray isay ermittedpay. Hetay efaultday isay uitablesay orfay ostmay anguageslay. Aay istlay ofay availableay aluesvay ancay ebay oundfay atay ttpshay://wwway.enpyray.orgay/ocday/tmlhay/yle_propertiesstay.tmlhay#ylestay-ropertypay-anguagelay"
# gui.rpy:409
# gui.rpy:411
old "## Mobile devices"
new "## Obilemay evicesday"
# gui.rpy:414
# gui.rpy:416
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Histay increasesay hetay izesay ofay hetay uickqay uttonsbay otay akemay hemtay easieray otay ouchtay onay abletstay anday onesphay."
# gui.rpy:420
# gui.rpy:422
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Histay angeschay hetay izesay anday pacingsay ofay ariousvay Uigay elementsay otay ensureay heytay areay easilyay isiblevay onay onesphay."
# gui.rpy:424
# gui.rpy:426
old "## Font sizes."
new "## Ontfay izessay."
# gui.rpy:432
# gui.rpy:434
old "## Adjust the location of the textbox."
new "## Djustaay hetay ocationlay ofay hetay extboxtay."
# gui.rpy:438
# gui.rpy:440
old "## Change the size and spacing of various things."
new "## Hangecay hetay izesay anday pacingsay ofay ariousvay hingstay."
# gui.rpy:451
# gui.rpy:453
old "## File button layout."
new "## Ilefay uttonbay ayoutlay."
# gui.rpy:455
# gui.rpy:457
old "## NVL-mode."
new "## Vlnay-odemay."
+47 -47
View File
@@ -34,8 +34,8 @@ translate piglatin strings:
new "Otay uildbay Ndroidaay ackagespay, easeplay ownloadday Aptray, unzipay itay, anday aceplay itay intoay hetay Enray'Ypay irectoryday. Hentay estartray hetay Enray'Ypay auncherlay."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Aay 23ay-itbay Avajay Evelopmentday Itkay isay equiredray otay uildbay Ndroidaay ackagespay onay Indowsway. Hetay Dkjay isay ifferentday omfray hetay Rejay, osay itay'say ossiblepay ouyay avehay Avajay ithoutway avinghay hetay Dkjay.\n\nLeasepay {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}ownloadday anday installay hetay Dkjay{/a}, hentay estartray hetay Enray'Ypay auncherlay."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Naay 86xay Avajay Evelopmentday Itkay isay equiredray otay uildbay Ndroidaay ackagespay onay Indowsway. Hetay Dkjay isay ifferentday omfray hetay Rejay, osay itay'say ossiblepay ouyay avehay Avajay ithoutway avinghay hetay Dkjay.\n\nLeasepay {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}ownloadday anday installay hetay Dkjay{/a}, hentay estartray hetay Enray'Ypay auncherlay."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -569,75 +569,75 @@ translate piglatin strings:
old "Please click on the color scheme you wish to use, then click Continue. These colors can be changed and customized later."
new "Leasepay ickclay onay hetay olorcay chemesay ouyay ishway otay useay, hentay ickclay Ontinuecay. Hesetay olorscay ancay ebay angedchay anday ustomizedcay aterlay."
# gui7.rpy:310
# gui7.rpy:311
old "{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"
new "{b}Arningway{/b}\nOntinuingcay illway overwriteay ustomizedcay arbay, uttonbay, avesay otslay, crollbarsay, anday iderslay imagesay.\n\nHatway ouldway ouyay ikelay otay oday?"
# gui7.rpy:310
# gui7.rpy:311
old "Choose new colors, then regenerate image files."
new "Hoosecay ewnay olorscay, hentay egenerateray imageay ilesfay."
# gui7.rpy:310
# gui7.rpy:311
old "Regenerate the image files using the colors in gui.rpy."
new "Egenerateray hetay imageay ilesfay usingay hetay olorscay inay uigay.pyray."
# gui7.rpy:330
# gui7.rpy:331
old "PROJECT NAME"
new "Rojectpay Amenay"
# gui7.rpy:330
# gui7.rpy:331
old "Please enter the name of your project:"
new "Leasepay enteray hetay amenay ofay ouryay rojectpay:"
# gui7.rpy:338
# gui7.rpy:339
old "The project name may not be empty."
new "Hetay rojectpay amenay aymay otnay ebay emptyay."
# gui7.rpy:343
# gui7.rpy:344
old "[project_name!q] already exists. Please choose a different project name."
new "[project_name!q] alreadyay existsay. Leasepay oosechay aay ifferentday rojectpay amenay."
# gui7.rpy:346
# gui7.rpy:347
old "[project_dir!q] already exists. Please choose a different project name."
new "[project_dir!q] alreadyay existsay. Leasepay oosechay aay ifferentday rojectpay amenay."
# gui7.rpy:357
# gui7.rpy:358
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."
new "Hatway esolutionray ouldshay hetay rojectpay useay? Lthoughaay Enray'Ypay ancay calesay hetay indowway upay anday ownday, histay isay hetay initialay izesay ofay hetay indowway, hetay izesay atay hichway assetsay ouldshay ebay rawnday, anday hetay izesay atay hichway hetay assetsay illway ebay atay heirtay arpestshay.\n\nHetay efaultday ofay 280x7201ay isay aay easonableray ompromisecay."
# gui7.rpy:357
# gui7.rpy:358
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
new "Ustomcay. Hetay Uigay isay optimizeday orfay aay 61ay:9ay aspectay atioray."
# gui7.rpy:372
# gui7.rpy:373
old "WIDTH"
new "Idthway"
# gui7.rpy:372
# gui7.rpy:373
old "Please enter the width of your game, in pixels."
new "Leasepay enteray hetay idthway ofay ouryay amegay, inay ixelspay."
# gui7.rpy:377
# gui7.rpy:378
old "The width must be a number."
new "Hetay idthway ustmay ebay aay umbernay."
# gui7.rpy:379
# gui7.rpy:380
old "HEIGHT"
new "Eighthay"
# gui7.rpy:379
# gui7.rpy:380
old "Please enter the height of your game, in pixels."
new "Leasepay enteray hetay eighthay ofay ouryay amegay, inay ixelspay."
# gui7.rpy:384
# gui7.rpy:385
old "The height must be a number."
new "Hetay eighthay ustmay ebay aay umbernay."
# gui7.rpy:426
# gui7.rpy:427
old "Creating the new project..."
new "Reatingcay hetay ewnay rojectpay..."
# gui7.rpy:428
# gui7.rpy:429
old "Updating the project..."
new "Pdatinguay hetay rojectpay..."
@@ -933,91 +933,91 @@ translate piglatin strings:
old "Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'."
new "Leasepay electsay aay emplatetay otay useay orfay ouryay ewnay rojectpay. Hetay emplatetay etssay hetay efaultday ontfay anday hetay useray interfaceay anguagelay. Fiay ouryay anguagelay isay otnay upportedsay, oosechay 'englishay'."
# preferences.rpy:72
# preferences.rpy:73
old "Launcher Preferences"
new "Auncherlay Referencespay"
# preferences.rpy:93
# preferences.rpy:94
old "Projects Directory:"
new "Rojectspay Irectoryday:"
# preferences.rpy:100
# preferences.rpy:101
old "[persistent.projects_directory!q]"
new "[persistent.projects_directory!q]"
# preferences.rpy:102
# preferences.rpy:103
old "Projects directory: [text]"
new "Rojectspay irectoryday: [text]"
# preferences.rpy:104
# preferences.rpy:105
old "Not Set"
new "Otnay Etsay"
# preferences.rpy:119
# preferences.rpy:120
old "Text Editor:"
new "Exttay Ditoreay:"
# preferences.rpy:125
# preferences.rpy:126
old "Text editor: [text]"
new "Exttay editoray: [text]"
# preferences.rpy:141
# preferences.rpy:142
old "Update Channel:"
new "Pdateuay Hannelcay:"
# preferences.rpy:161
# preferences.rpy:162
old "Navigation Options:"
new "Avigationnay Ptionsoay:"
# preferences.rpy:165
# preferences.rpy:166
old "Include private names"
new "Ncludeiay rivatepay amesnay"
# preferences.rpy:166
# preferences.rpy:167
old "Include library names"
new "Ncludeiay ibrarylay amesnay"
# preferences.rpy:176
# preferences.rpy:177
old "Launcher Options:"
new "Auncherlay Ptionsoay:"
# preferences.rpy:180
# preferences.rpy:181
old "Hardware rendering"
new "Ardwarehay enderingray"
# preferences.rpy:181
# preferences.rpy:182
old "Show edit file section"
new "Howsay editay ilefay ectionsay"
# preferences.rpy:182
# preferences.rpy:183
old "Large fonts"
new "Argelay ontsfay"
# preferences.rpy:185
# preferences.rpy:186
old "Console output"
new "Onsolecay outputay"
# preferences.rpy:187
# preferences.rpy:190
old "Force new tutorial"
new "Orcefay ewnay utorialtay"
# preferences.rpy:189
# preferences.rpy:194
old "Legacy options"
new "Egacylay optionsay"
# preferences.rpy:192
# preferences.rpy:197
old "Show templates"
new "Howsay emplatestay"
# preferences.rpy:194
# preferences.rpy:199
old "Sponsor message"
new "Ponsorsay essagemay"
# preferences.rpy:214
# preferences.rpy:219
old "Open launcher project"
new "Penoay auncherlay rojectpay"
# preferences.rpy:228
# preferences.rpy:233
old "Language:"
new "Anguagelay:"
@@ -1049,23 +1049,23 @@ translate piglatin strings:
old "Ren'Py is scanning the project..."
new "Enray'Ypay isay canningsay hetay rojectpay..."
# project.rpy:725
# project.rpy:728
old "Launching"
new "Aunchinglay"
# project.rpy:759
# project.rpy:762
old "PROJECTS DIRECTORY"
new "Rojectspay Irectoryday"
# project.rpy:759
# project.rpy:762
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "Leasepay oosechay hetay rojectspay irectoryday usingay hetay irectoryday ooserchay.\n{b}Hetay irectoryday ooserchay aymay avehay openeday ehindbay histay indowway.{/b}"
# project.rpy:759
# project.rpy:762
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
new "Histay auncherlay illway cansay orfay rojectspay inay histay irectoryday, illway reatecay ewnay rojectspay inay histay irectoryday, anday illway aceplay uiltbay rojectspay intoay histay irectoryday."
# project.rpy:764
# project.rpy:767
old "Ren'Py has set the projects directory to:"
new "Enray'Ypay ashay etsay hetay rojectspay irectoryday otay:"
+1 -1
View File
@@ -1,4 +1,4 @@
translate russian strings:
# _developer/developer.rpym:38
+2 -2
View File
@@ -1,4 +1,4 @@
translate russian strings:
# about.rpy:39
@@ -34,7 +34,7 @@ translate russian strings:
new "Чтобы построить Android-пакет, пожалуйста, загрузите RAPT, разархивируйте его и поместить в директорию Ren'Py. Затем перезагрузите лаунчер Ren'Py."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Чтобы построить Android-пакеты на Windows требуется 32-разрядный инструментарий разработки Java. JDK отличен от JRE, и возможно, у вас есть Java без JDK.\n\nПожалуйста, {a=httpу://www.oracle.com/technetwork/java/javase/downloads/index.html}загрузите и установите JDK{/a}, и перезапустите лаунчер Ren'Py."
# android.rpy:32
+1 -1
View File
@@ -1,4 +1,4 @@
translate russian strings:
# _layout/classic_joystick_preferences.rpym:94
+1 -1
View File
@@ -1,4 +1,4 @@
translate russian strings:
# options.rpy:1
@@ -34,8 +34,8 @@ translate simplified_chinese strings:
new "要生成安卓应用包,请下载 RAPT,并解压到 Ren'Py 目录中。之后重启 Ren'Py。"
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "要在 Windows 中创建安卓应用包,您需要一个 32 位的 Java 开发套件(JDK)。JDK 不同于 JRE,所以您可能已安装过 Java 但尚未安装 JDK。\n\n请{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}下载并安装 JDK{/a},然后重启 Ren'Py。"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "要在 Windows 中创建安卓应用包,您需要一个 32 位的 Java 开发套件(JDK)。JDK 不同于 JRE,所以您可能已安装过 Java 但尚未安装 JDK。\n\n请{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}下载并安装 JDK{/a},然后重启 Ren'Py。"
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+360 -129
View File
@@ -153,87 +153,403 @@ translate spanish strings:
old "{#month_short}Dec"
new "Dic."
# 00action_file.rpy:235
# 00action_file.rpy:237
old "%b %d, %H:%M"
new "%d %b, %H:%M"
# 00action_file.rpy:820
# 00action_file.rpy:344
old "Save slot %s: [text]"
new "Grabar partida %s: [text]"
# 00action_file.rpy:459
old "Delete slot [text]"
new "Borrar partida [text]"
# 00action_file.rpy:539
old "File page auto"
new "Página grabado automático"
# 00action_file.rpy:541
old "File page quick"
new "Página grabado rápido"
# 00action_file.rpy:543
old "File page [text]"
new "Página grabación [text]"
# 00action_file.rpy:733
old "Next file page."
new "Próxima página."
# 00action_file.rpy:797
old "Previous file page."
new "Página anterior."
# 00action_file.rpy:858
old "Quick save complete."
new "Grabar rápido completo."
# 00gui.rpy:227
# 00action_file.rpy:876
old "Quick save."
new "Grabado rápido."
# 00action_file.rpy:895
old "Quick load."
new "Carga rápida."
# 00action_other.rpy:355
old "Language [text]"
new "Idioma [text]"
# 00director.rpy:709
old "The interactive director is not enabled here."
new "El director interactivo no está habilitado aquí."
# 00director.rpy:1479
old "⬆"
new "⬆"
# 00director.rpy:1485
old "⬇"
new "⬇"
# 00director.rpy:1549
old "Done"
new "Hecho"
# 00director.rpy:1559
old "(statement)"
new "(sentencia)"
# 00director.rpy:1560
old "(tag)"
new "(etiqueta)"
# 00director.rpy:1561
old "(attributes)"
new "(atributos)"
# 00director.rpy:1562
old "(transform)"
new "(transformación)"
# 00director.rpy:1587
old "(transition)"
new "(transición)"
# 00director.rpy:1599
old "(channel)"
new "(canal)"
# 00director.rpy:1600
old "(filename)"
new "(archivo)"
# 00director.rpy:1629
old "Change"
new "Cambiar"
# 00director.rpy:1631
old "Add"
new "Añadir"
# 00director.rpy:1634
old "Cancel"
new "Cancelar"
# 00director.rpy:1637
old "Remove"
new "Eliminar"
# 00director.rpy:1672
old "Statement:"
new "Sentencia:"
# 00director.rpy:1693
old "Tag:"
new "Etiqueta:"
# 00director.rpy:1709
old "Attributes:"
new "Atributos:"
# 00director.rpy:1727
old "Transforms:"
new "Transformaciones:"
# 00director.rpy:1746
old "Behind:"
new "Detrás:"
# 00director.rpy:1765
old "Transition:"
new "Transición:"
# 00director.rpy:1783
old "Channel:"
new "Canal:"
# 00director.rpy:1801
old "Audio Filename:"
new "Archivo de audio:"
# 00gui.rpy:370
old "Are you sure?"
new "¿Seguro?"
# 00gui.rpy:228
# 00gui.rpy:371
old "Are you sure you want to delete this save?"
new "¿Seguro que quieres borrar esta partida?"
# 00gui.rpy:229
# 00gui.rpy:372
old "Are you sure you want to overwrite your save?"
new "¿Seguro que quieres sobreescribir esta partida?"
# 00gui.rpy:230
# 00gui.rpy:373
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Al cargar se perderá el progreso no guardado.\n¿Seguro que quieres hacer esto?"
# 00gui.rpy:231
# 00gui.rpy:374
old "Are you sure you want to quit?"
new "¿Seguro que quieres salir?"
# 00gui.rpy:232
# 00gui.rpy:375
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "¿Seguro que quieres volver al menú principal?\nSe perderá el progreso no guardado."
# 00gui.rpy:233
# 00gui.rpy:376
old "Are you sure you want to end the replay?"
new "¿Seguro que quieres finalizar la repetición?"
# 00gui.rpy:234
# 00gui.rpy:377
old "Are you sure you want to begin skipping?"
new "¿Seguro que quieres empezar el modo salto?"
# 00gui.rpy:235
# 00gui.rpy:378
old "Are you sure you want to skip to the next choice?"
new "¿Seguro que quieres saltar hasta la próxima elección?"
# 00gui.rpy:236
# 00gui.rpy:379
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "¿Seguro que quieres saltar el texto no visto hasta la próxima elección?"
# 00keymap.rpy:250
# 00keymap.rpy:258
old "Failed to save screenshot as %s."
new "No se pudo salvar la captura de pantalla como %s."
# 00keymap.rpy:270
old "Saved screenshot as %s."
new "Captura de pantalla guardada como %s."
# 00library.rpy:142
# 00library.rpy:146
old "Self-voicing disabled."
new "Voz automática desactivada."
# 00library.rpy:143
# 00library.rpy:147
old "Clipboard voicing enabled. "
new "'Portapapeles a voz' activado. "
# 00library.rpy:144
# 00library.rpy:148
old "Self-voicing enabled. "
new "Voz automática activada. "
# 00library.rpy:179
# 00library.rpy:150
old "bar"
new "barra"
# 00library.rpy:151
old "selected"
new "seleccionado"
# 00library.rpy:152
old "viewport"
new "viewport"
# 00library.rpy:153
old "horizontal scroll"
new "deslizamiento horizontal"
# 00library.rpy:154
old "vertical scroll"
new "deslizamiento vertical"
# 00library.rpy:155
old "activate"
new "activar"
# 00library.rpy:156
old "deactivate"
new "desactivar"
# 00library.rpy:157
old "increase"
new "aumentar"
# 00library.rpy:158
old "decrease"
new "disminuir"
# 00library.rpy:193
old "Skip Mode"
new "Modo salto"
# 00library.rpy:262
# 00library.rpy:279
old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
new "Este programa contiene software libre sujeto a diversas licencias que incluyen la licencia MIT y la {i}GNU Lesser General Public License{/i} (Licencia Pública General Reducida de GNU). Puedes encontrar la lista completa de software, con enlaces al código fuente completo, {a=https://www.renpy.org/l/license}aquí (en inglés){/a}."
# 00preferences.rpy:422
# 00preferences.rpy:207
old "display"
new "pantalla"
# 00preferences.rpy:219
old "transitions"
new "transiciones"
# 00preferences.rpy:228
old "skip transitions"
new "salta transiciones"
# 00preferences.rpy:230
old "video sprites"
new "sprites de vídeo"
# 00preferences.rpy:239
old "show empty window"
new "muestra ventana vacía"
# 00preferences.rpy:248
old "text speed"
new "velocidad de texto"
# 00preferences.rpy:256
old "joystick"
new "joystick"
# 00preferences.rpy:256
old "joystick..."
new "joystick..."
# 00preferences.rpy:263
old "skip"
new "salta"
# 00preferences.rpy:266
old "skip unseen [text]"
new "salta no visto [text]"
# 00preferences.rpy:271
old "skip unseen text"
new "salva texto no visto"
# 00preferences.rpy:273
old "begin skipping"
new "comienza salto"
# 00preferences.rpy:277
old "after choices"
new "tras las opciones"
# 00preferences.rpy:284
old "skip after choices"
new "salta tras las opciones"
# 00preferences.rpy:286
old "auto-forward time"
new "tiempo auto-avance"
# 00preferences.rpy:300
old "auto-forward"
new "auto-avance"
# 00preferences.rpy:307
old "Auto forward"
new "Auto avance"
# 00preferences.rpy:310
old "auto-forward after click"
new "auto-avance después del clic"
# 00preferences.rpy:319
old "automatic move"
new "movimiento automático"
# 00preferences.rpy:328
old "wait for voice"
new "espera la voz"
# 00preferences.rpy:337
old "voice sustain"
new "mantén voz"
# 00preferences.rpy:346
old "self voicing"
new "auto voz"
# 00preferences.rpy:355
old "clipboard voicing"
new "voz en clipboard"
# 00preferences.rpy:364
old "debug voicing"
new "debug voz"
# 00preferences.rpy:373
old "emphasize audio"
new "enfatiza audio"
# 00preferences.rpy:382
old "rollback side"
new "lado retroceso"
# 00preferences.rpy:392
old "gl powersave"
new "gl ahorro energía"
# 00preferences.rpy:398
old "gl framerate"
new "gl cuadros por s."
# 00preferences.rpy:401
old "gl tearing"
new "gl tearing"
# 00preferences.rpy:413
old "music volume"
new "volumen música"
# 00preferences.rpy:414
old "sound volume"
new "volumen sonido"
# 00preferences.rpy:415
old "voice volume"
new "volumen voz"
# 00preferences.rpy:416
old "mute music"
new "silencia música"
# 00preferences.rpy:417
old "mute sound"
new "silencia sonido"
# 00preferences.rpy:418
old "mute voice"
new "silencia voz"
# 00preferences.rpy:419
old "mute all"
new "silencia todo"
# 00preferences.rpy:500
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "'Portapapeles a voz' activado. Pulsa 'Mayús.+C' para desactivarlo."
# 00preferences.rpy:424
# 00preferences.rpy:502
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "Voz automática dirà \"[renpy.display.tts.last]\". Pulsa 'alt+shift+V' para desactivar."
# 00preferences.rpy:426
# 00preferences.rpy:504
old "Self-voicing enabled. Press 'v' to disable."
new "Voz automática activada. Presiona 'v' para desactivarla."
@@ -241,179 +557,94 @@ translate spanish strings:
old "Contacting App Store\nPlease Wait..."
new "Contactando App Store\nPor favor, espera..."
# 00updater.rpy:367
# 00updater.rpy:372
old "The Ren'Py Updater is not supported on mobile devices."
new "El Actualizador de Ren'Py no es compatible con dispositivos móviles."
# 00updater.rpy:486
# 00updater.rpy:491
old "An error is being simulated."
new "Se simula un error."
# 00updater.rpy:662
# 00updater.rpy:672
old "Either this project does not support updating, or the update status file was deleted."
new "O bien este proyecto no es compatible con la actualización o el archivo de estado de la actualización se ha eliminado."
# 00updater.rpy:676
# 00updater.rpy:686
old "This account does not have permission to perform an update."
new "Esta cuenta no tiene permiso para realizar una actualización."
# 00updater.rpy:679
# 00updater.rpy:689
old "This account does not have permission to write the update log."
new "Esta cuenta no tiene permiso para escribir en el registro de actualización."
# 00updater.rpy:704
# 00updater.rpy:716
old "Could not verify update signature."
new "No se pudo verificar la actualización de firmas."
# 00updater.rpy:975
# 00updater.rpy:991
old "The update file was not downloaded."
new "El archivo de actualización no se ha descargado."
# 00updater.rpy:993
# 00updater.rpy:1009
old "The update file does not have the correct digest - it may have been corrupted."
new "El archivo de actualización no tiene el 'digest' correcto - es posible que esté dañado."
# 00updater.rpy:1049
# 00updater.rpy:1065
old "While unpacking {}, unknown type {}."
new "Tipo desconocido {1} al desempaquetar {0}."
# 00updater.rpy:1393
# 00updater.rpy:1412
old "Updater"
new "Actualizador"
# 00updater.rpy:1404
# 00updater.rpy:1423
old "This program is up to date."
new "Este programa está actualizado."
# 00updater.rpy:1406
# 00updater.rpy:1425
old "[u.version] is available. Do you want to install it?"
new "[u.version] está disponible. ¿Quieres instalarla?"
# 00updater.rpy:1408
# 00updater.rpy:1427
old "Preparing to download the updates."
new "Preparando para descargar la actualización."
# 00updater.rpy:1410
# 00updater.rpy:1429
old "Downloading the updates."
new "Descargando la actualización."
# 00updater.rpy:1412
# 00updater.rpy:1431
old "Unpacking the updates."
new "Desempaquetando la actualización."
# 00updater.rpy:1416
# 00updater.rpy:1435
old "The updates have been installed. The program will restart."
new "La actualización ha sido instalada. El programa se reiniciará."
# 00updater.rpy:1418
# 00updater.rpy:1437
old "The updates have been installed."
new "La actualización ha sido instalada."
# 00updater.rpy:1420
# 00updater.rpy:1439
old "The updates were cancelled."
new "La actualización ha sido cancelada."
# 00gallery.rpy:563
# 00gallery.rpy:573
old "Image [index] of [count] locked."
new "Imagen [index] de [count] bloqueada."
# 00gallery.rpy:583
# 00gallery.rpy:593
old "prev"
new "ant."
# 00gallery.rpy:584
# 00gallery.rpy:594
old "next"
new "sig."
# 00gallery.rpy:585
# 00gallery.rpy:595
old "slideshow"
new "presentación"
# 00gallery.rpy:586
# 00gallery.rpy:596
old "return"
new "volver"
# 00director.rpy:703
old "The interactive director is not enabled here."
new "El director interactivo no está habilitado aquí."
# 00director.rpy:1490
old "Done"
new "Hecho"
# 00director.rpy:1498
old "(statement)"
new "(sentencia)"
# 00director.rpy:1499
old "(tag)"
new "(etiqueta)"
# 00director.rpy:1500
old "(attributes)"
new "(atributos)"
# 00director.rpy:1501
old "(transform)"
new "(transformación)"
# 00director.rpy:1526
old "(transition)"
new "(transición)"
# 00director.rpy:1538
old "(channel)"
new "(canal)"
# 00director.rpy:1539
old "(filename)"
new "(archivo)"
# 00director.rpy:1564
old "Change"
new "Cambiar"
# 00director.rpy:1566
old "Add"
new "Añadir"
# 00director.rpy:1572
old "Remove"
new "Eliminar"
# 00director.rpy:1605
old "Statement:"
new "Sentencia:"
# 00director.rpy:1626
old "Tag:"
new "Etiqueta:"
# 00director.rpy:1642
old "Attributes:"
new "Atributos:"
# 00director.rpy:1660
old "Transforms:"
new "Transformaciones:"
# 00director.rpy:1679
old "Behind:"
new "Detrás:"
# 00director.rpy:1698
old "Transition:"
new "Transición:"
# 00director.rpy:1716
old "Channel:"
new "Canal:"
# 00director.rpy:1734
old "Audio Filename:"
new "Archivo de audio:"
# 00keymap.rpy:258
old "Failed to save screenshot as %s."
new "No se pudo salvar la captura de pantalla como %s."
+51 -64
View File
@@ -3,23 +3,23 @@ translate spanish strings:
# _developer/developer.rpym:38
old "Developer Menu"
new "Menú De Desarrollo"
new "Menú de desarrollo"
# _developer/developer.rpym:43
old "Reload Game (Shift+R)"
new "Reiniciar Juego (Shift+R)"
old "Interactive Director (D)"
new "Director interactivo (D)"
# _developer/developer.rpym:45
old "Reload Game (Shift+R)"
new "Reiniciar juego (Shift+R)"
# _developer/developer.rpym:47
old "Console (Shift+O)"
new "Consola (Mayús.+O)"
# _developer/developer.rpym:47
old "Variable Viewer"
new "Visor De Variables"
# _developer/developer.rpym:49
old "Theme Test"
new "Probar Tema"
old "Variable Viewer"
new "Visor de variables"
# _developer/developer.rpym:51
old "Image Location Picker"
@@ -27,53 +27,65 @@ translate spanish strings:
# _developer/developer.rpym:53
old "Filename List"
new "Lista De Archivos"
new "Lista de archivos"
# _developer/developer.rpym:57
old "Show Image Load Log"
new "Muestra registro de carga de imagen"
old "Show Image Load Log (F4)"
new "Mostrar registro de carga de imagen (F4)"
# _developer/developer.rpym:60
old "Hide Image Load Log"
new "Oculta registro de carga de imagen"
old "Hide Image Load Log (F4)"
new "Ocultar registro de carga de imagen (F4)"
# _developer/developer.rpym:95
old "Nothing to inspect."
new "Nada para inspeccionar."
# _developer/developer.rpym:217
# _developer/developer.rpym:223
old "Return to the developer menu"
new "Volver al menú de desarrollo"
# _developer/developer.rpym:373
# _developer/developer.rpym:383
old "Rectangle: %r"
new "Rectángulo: %r"
# _developer/developer.rpym:378
# _developer/developer.rpym:388
old "Mouse position: %r"
new "Posición del ratón: %r"
# _developer/developer.rpym:383
# _developer/developer.rpym:393
old "Right-click or escape to quit."
new "Clic-derecho o escape para salir."
# _developer/developer.rpym:412
# _developer/developer.rpym:425
old "Rectangle copied to clipboard."
new "Rectángulo copiado al portapapeles."
# _developer/developer.rpym:415
# _developer/developer.rpym:428
old "Position copied to clipboard."
new "Posición copiada al portapapeles."
# _developer/developer.rpym:524
# _developer/developer.rpym:447
old "Type to filter: "
new "Tipo a filtrar: "
# _developer/developer.rpym:575
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Texturas: [tex_count] ([tex_size_mb:.1f] MB)"
# _developer/developer.rpym:579
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Caché de imagen: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# _developer/developer.rpym:589
old "✔ "
new "✔ "
# _developer/developer.rpym:527
# _developer/developer.rpym:592
old "✘ "
new "✘ "
# _developer/developer.rpym:532
# _developer/developer.rpym:597
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ imagen prevista (correcto){/color}\n{color=#fcc}✘ imagen no prevista (fallido){/color}\n{color=#fff}Arrastra para mover.{/color}"
@@ -113,91 +125,66 @@ translate spanish strings:
old "<repr() failed>"
new "<repr() fallido>"
# 00console.rpy:182
# 00console.rpy:255
old "Press <esc> to exit console. Type help for help.\n"
new "Presiona <esc> para salir de la consola. Escribe 'help' para la ayuda.\n"
# 00console.rpy:186
# 00console.rpy:259
old "Ren'Py script enabled."
new "Script Ren'Py habilitado."
# 00console.rpy:188
# 00console.rpy:261
old "Ren'Py script disabled."
new "Script Ren'Py deshabilitado."
# 00console.rpy:398
# 00console.rpy:496
old "help: show this help"
new "help: muestra esta ayuda"
# 00console.rpy:403
# 00console.rpy:501
old "commands:\n"
new "comandos:\n"
# 00console.rpy:413
# 00console.rpy:511
old " <renpy script statement>: run the statement\n"
new " <sentencia renpy script>: ejecuta la sentencia\n"
# 00console.rpy:415
# 00console.rpy:513
old " <python expression or statement>: run the expression or statement"
new " <expresión o sentencia python>: ejecuta la expresión o sentencia"
# 00console.rpy:423
# 00console.rpy:521
old "clear: clear the console history"
new "clear: limpia el historial de la consola"
# 00console.rpy:427
# 00console.rpy:525
old "exit: exit the console"
new "exit: sale de la consola"
# 00console.rpy:435
# 00console.rpy:533
old "load <slot>: loads the game from slot"
new "load <slot>: carga el juego desde el 'slot'"
# 00console.rpy:448
# 00console.rpy:546
old "save <slot>: saves the game in slot"
new "save <slot>: graba el juego en el 'slot'"
# 00console.rpy:459
# 00console.rpy:557
old "reload: reloads the game, refreshing the scripts"
new "reload: recarga el juego, actualizando los scripts"
# 00console.rpy:467
# 00console.rpy:565
old "watch <expression>: watch a python expression"
new "watch <expresión>: observa una expresión python"
# 00console.rpy:493
# 00console.rpy:591
old "unwatch <expression>: stop watching an expression"
new "unwatch <expresión>: deja de observar una expresión"
# 00console.rpy:519
# 00console.rpy:622
old "unwatchall: stop watching all expressions"
new "unwatchall: deja de observar todas las expresiones"
# 00console.rpy:536
# 00console.rpy:639
old "jump <label>: jumps to label"
new "jump <label>: salta a la etiqueta"
# _developer/developer.rpym:43
old "Interactive Director (D)"
new "Director interactivo (D)"
# _developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "Mostrar registro de carga de imagen (F4)"
# _developer/developer.rpym:60
old "Hide Image Load Log (F4)"
new "Ocultar registro de carga de imagen (F4)"
# _developer/developer.rpym:447
old "Type to filter: "
new "Tipo a filtrar: "
# _developer/developer.rpym:572
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Texturas: [tex_count] ([tex_size_mb:.1f] MB)"
# _developer/developer.rpym:576
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Caché de imagen: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
+102 -119
View File
@@ -1,91 +1,119 @@
translate spanish strings:
# 00gltest.rpy:64
old "Graphics Acceleration"
new "Aceleración gráfica"
# 00gltest.rpy:70
old "Renderer"
new "Renderizador"
# 00gltest.rpy:74
old "Automatically Choose"
new "Escoger automáticamente"
# 00gltest.rpy:75
# 00gltest.rpy:79
old "Force Angle/DirectX Renderer"
new "Forzar 'Angle/DirectX Renderer'"
# 00gltest.rpy:79
# 00gltest.rpy:83
old "Force OpenGL Renderer"
new "Forzar 'OpenGL Renderer'"
# 00gltest.rpy:83
# 00gltest.rpy:87
old "Force Software Renderer"
new "Forzar 'Software Renderer'"
# 00gltest.rpy:93
old "NPOT"
new "NPOT"
# 00gltest.rpy:97
old "Enable"
new "Activar"
# 00gltest.rpy:109
# 00gltest.rpy:131
old "Powersave"
new "Ahorro de energía"
# 00gltest.rpy:145
old "Framerate"
new "Cuadros por s."
# 00gltest.rpy:149
old "Screen"
new "Pantalla"
# 00gltest.rpy:153
old "60"
new "60"
# 00gltest.rpy:157
old "30"
new "30"
# 00gltest.rpy:163
old "Tearing"
new "Tearing"
# 00gltest.rpy:179
old "Changes will take effect the next time this program is run."
new "Los cambios se aplicarán la próxima vez que el programa se ejecute."
# 00gltest.rpy:141
# 00gltest.rpy:213
old "Performance Warning"
new "Aviso de funcionamiento"
# 00gltest.rpy:146
# 00gltest.rpy:218
old "This computer is using software rendering."
new "Este ordenador usa 'software rendering'."
# 00gltest.rpy:148
# 00gltest.rpy:220
old "This computer is not using shaders."
new "Este ordenador no usa 'shaders'."
# 00gltest.rpy:150
# 00gltest.rpy:222
old "This computer is displaying graphics slowly."
new "Este ordenador muestra los gráficos lentamente."
# 00gltest.rpy:152
# 00gltest.rpy:224
old "This computer has a problem displaying graphics: [problem]."
new "Este ordenador tiene un problema mostrando los gráficos: [problem]."
# 00gltest.rpy:157
# 00gltest.rpy:229
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "Los controladores gráficos pueden estar obsoletos o no funcionar adecuadamente. Esto puede conllevar que los gráficos se muestren lenta o incorrectamente. Actualizar DirectX puede solucionar este problema."
# 00gltest.rpy:159
# 00gltest.rpy:231
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "Los controladores gráficos pueden estar obsoletos o no funcionar adecuadamente. Esto puede conllevar que los gráficos se muestren lenta o incorrectamente."
# 00gltest.rpy:164
# 00gltest.rpy:236
old "Update DirectX"
new "Actualizar DirectX"
# 00gltest.rpy:170
# 00gltest.rpy:242
old "Continue, Show this warning again"
new "Continuar. Mostrar este aviso de nuevo"
# 00gltest.rpy:174
# 00gltest.rpy:246
old "Continue, Don't show warning again"
new "Continuar. No mostrar este aviso de nuevo"
# 00gltest.rpy:192
# 00gltest.rpy:264
old "Updating DirectX."
new "Actualizando DirectX."
# 00gltest.rpy:196
# 00gltest.rpy:268
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
new "La instalación web de DirectX ha comenzado. Puede haber iniciado minimizada en la barra de tareas. Siga las instrucciones para instalar DirectX."
# 00gltest.rpy:200
# 00gltest.rpy:272
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}Nota:{/b} El programa de instalación de DirectX de Microsoft instalará, por defecto, la barra Bing. Si no desea esta barra, desactive la casilla correspondiente."
# 00gltest.rpy:204
# 00gltest.rpy:276
old "When setup finishes, please click below to restart this program."
new "Cuando la instalación acabe, haga clic abajo para reiniciar el programa."
# 00gltest.rpy:206
# 00gltest.rpy:278
old "Restart"
new "Reiniciar"
@@ -113,114 +141,54 @@ translate spanish strings:
old "Back (B)"
new "Atrás (B)"
# _errorhandling.rpym:495
old "Open Traceback"
new "Abrir rastreo"
# _errorhandling.rpym:497
old "Opens the traceback.txt file in a text editor."
new "Abre el archivo de rastreo 'traceback.txt' en un editor de texto."
# _errorhandling.rpym:499
old "Copy to Clipboard"
new "Copiar al portapapeles"
# _errorhandling.rpym:501
old "Copies the traceback.txt file to the clipboard."
new "Copia el archivo traceback.txt al portapapeles."
# _errorhandling.rpym:519
old "An exception has occurred."
new "Ha sucedido una excepción."
# _errorhandling.rpym:538
old "Rollback"
new "Volver atrás"
# _errorhandling.rpym:540
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Intenta volver a un momento anterior y permite guardar o escoger una opción diferente."
# _errorhandling.rpym:543
old "Ignore"
new "Ignorar"
# _errorhandling.rpym:545
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignora la excepción y permite continuar. Suele conllevar más errores."
# _errorhandling.rpym:548
old "Reload"
new "Recargar"
# _errorhandling.rpym:550
old "Reloads the game from disk, saving and restoring game state if possible."
new "Recarga el juego del disco, guardando y restaurando la partida si es posible."
# _errorhandling.rpym:560
old "Quits the game."
new "Sale del juego."
# _errorhandling.rpym:582
old "Parsing the script failed."
new "Error en el análisis del código."
# _errorhandling.rpym:606
old "Open Parse Errors"
new "Abre errores de análisis"
# _errorhandling.rpym:608
old "Opens the errors.txt file in a text editor."
new "Abre el archivo de errores, 'errors.txt', en un editor de texto."
# _errorhandling.rpym:612
old "Copies the errors.txt file to the clipboard."
new "Copia el archivo errors.txt al portapapeles."
# 00gltest.rpy:70
old "Renderer"
new "Renderizador"
# 00gltest.rpy:93
old "NPOT"
new "NPOT"
# 00gltest.rpy:131
old "Powersave"
new "Ahorro de energía"
# 00gltest.rpy:145
old "Framerate"
new "Cuadros por s."
# 00gltest.rpy:149
old "Screen"
new "Pantalla"
# 00gltest.rpy:153
old "60"
new "60"
# 00gltest.rpy:157
old "30"
new "30"
# 00gltest.rpy:163
old "Tearing"
new "Tearing"
# _errorhandling.rpym:528
old "Open"
new "Abrir"
# _errorhandling.rpym:530
old "Opens the traceback.txt file in a text editor."
new "Abre el archivo de rastreo 'traceback.txt' en un editor de texto."
# _errorhandling.rpym:532
old "Copy"
new "Copiar"
# _errorhandling.rpym:534
old "Copies the traceback.txt file to the clipboard."
new "Copia el archivo traceback.txt al portapapeles."
# _errorhandling.rpym:561
old "An exception has occurred."
new "Ha sucedido una excepción."
# _errorhandling.rpym:581
old "Rollback"
new "Volver atrás"
# _errorhandling.rpym:583
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Intenta volver a un momento anterior y permite guardar o escoger una opción diferente."
# _errorhandling.rpym:586
old "Ignore"
new "Ignorar"
# _errorhandling.rpym:590
old "Ignores the exception, allowing you to continue."
new "Ignora la excepción y permite continuar."
# _errorhandling.rpym:592
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignora la excepción y permite continuar. Suele conllevar más errores."
# _errorhandling.rpym:596
old "Reload"
new "Recargar"
# _errorhandling.rpym:598
old "Reloads the game from disk, saving and restoring game state if possible."
new "Recarga el juego del disco, guardando y restaurando la partida si es posible."
# _errorhandling.rpym:601
old "Console"
new "Consola"
@@ -229,3 +197,18 @@ translate spanish strings:
old "Opens a console to allow debugging the problem."
new "Abre una consola y permite depurar el problema."
# _errorhandling.rpym:613
old "Quits the game."
new "Sale del juego."
# _errorhandling.rpym:637
old "Parsing the script failed."
new "Error en el análisis del código."
# _errorhandling.rpym:663
old "Opens the errors.txt file in a text editor."
new "Abre el archivo de errores, 'errors.txt', en un editor de texto."
# _errorhandling.rpym:667
old "Copies the errors.txt file to the clipboard."
new "Copia el archivo errors.txt al portapapeles."
+404 -405
View File
@@ -3,433 +3,432 @@ translate spanish strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
new "## Inicialización"
# gui.rpy:5
old "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## The init offset statement causes the init code in this file to run before init code in any other file."
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
new "## La sentencia 'init offset' da preferencia a las sentencias de inicialización de este archivo respecto a otros archivos."
# gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
# gui.rpy:21
old "## Colors"
new "## Colors"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
# gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## An accent color used throughout the interface to label and highlight text."
# gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## The color used for a text button when it is neither selected nor hovered."
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## The color that is used for buttons and bars that are hovered."
# gui.rpy:39
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## The color used for a text button when it cannot be selected."
# gui.rpy:46
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
# gui.rpy:73
old "## The size of text in the game's user interface."
new "## The size of text in the game's user interface."
# gui.rpy:76
old "## The size of labels in the game's user interface."
new "## The size of labels in the game's user interface."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
# gui.rpy:92
old "## Should we show the name and version of the game?"
new "## Should we show the name and version of the game?"
# gui.rpy:96
old "## Dialogue"
new "## Dialogue"
# gui.rpy:98
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## These variables control how dialogue is displayed on the screen one line at a time."
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
# gui.rpy:104
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
# gui.rpy:109
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
# gui.rpy:114
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
# gui.rpy:118
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
# gui.rpy:123
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
# gui.rpy:132
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
new "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
# gui.rpy:141
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
# gui.rpy:146
old "## Buttons"
new "## Buttons"
# gui.rpy:148
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
# gui.rpy:151
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
# gui.rpy:155
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## The borders on each side of the button, in left, top, right, bottom order."
# gui.rpy:158
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
# gui.rpy:179
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
# gui.rpy:198
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
# gui.rpy:222
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
# gui.rpy:234
old "## The width and height of thumbnails used by the save slots."
new "## The width and height of thumbnails used by the save slots."
# gui.rpy:238
old "## The number of columns and rows in the grid of save slots."
new "## The number of columns and rows in the grid of save slots."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
# gui.rpy:245
old "## These variables control the positioning and spacing of various user interface elements."
new "## These variables control the positioning and spacing of various user interface elements."
# gui.rpy:248
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
# gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Buttons in the navigation section of the main and game menus."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
# gui.rpy:277
old "## Frames"
new "## Frames"
# gui.rpy:279
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
# gui.rpy:285
old "## The frame that is used as part of the confirm screen."
new "## The frame that is used as part of the confirm screen."
# gui.rpy:288
old "## The frame that is used as part of the skip screen."
new "## The frame that is used as part of the skip screen."
# gui.rpy:291
old "## The frame that is used as part of the notify screen."
new "## The frame that is used as part of the notify screen."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
# gui.rpy:300
old "## These control the look and size of bars, scrollbars, and sliders."
new "## These control the look and size of bars, scrollbars, and sliders."
# gui.rpy:302
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
# gui.rpy:305
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
# gui.rpy:311
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## True if bar images should be tiled. False if they should be linearly scaled."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
# gui.rpy:326
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
# gui.rpy:331
old "## History"
new "## History"
# gui.rpy:333
old "## The history screen displays dialogue that the player has already dismissed."
new "## The history screen displays dialogue that the player has already dismissed."
# gui.rpy:335
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## The number of blocks of dialogue history Ren'Py will keep."
# gui.rpy:338
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
# gui.rpy:342
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## The position, width, and alignment of the label giving the name of the speaking character."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
# gui.rpy:358
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
# gui.rpy:360
old "## The borders of the background of the NVL-mode background window."
new "## The borders of the background of the NVL-mode background window."
# gui.rpy:363
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
# gui.rpy:367
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
# gui.rpy:384
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
# gui.rpy:403
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
# gui.rpy:409
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
# gui.rpy:427
old "## Change the size and spacing of items in the game menu."
new "## Change the size and spacing of items in the game menu."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
new "## Llamando 'qui.init' se resetean los estilos a los valores por defecto y se establecen la anchura y altura del juego."
# gui.rpy:17
old "## GUI Configuration Variables"
new "## Variables de configuración de la interfaz."
# gui.rpy:168
# gui.rpy:21
old "## Colors"
new "## Colores"
# gui.rpy:23
old "## The colors of text in the interface."
new "## Los colores del texto de la interfaz"
# gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## El color enfatizado usado en la interfaz para subrayar texto."
# gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## El color del botón de texto cuando no está seleccionado ni enfocado."
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## El color 'small' se usa para el texto pequeño, que necesita destacar más."
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## El color usado en botones y barras que ganan foco."
# gui.rpy:39
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## El color del botón de texto seleccionado pero no enfocado. Un botón está seleccionado si indica el valor actual de la pantalla o preferencia."
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## El color de los botones de texto que no pueden ser seleccionados."
# gui.rpy:46
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## Colores de la parte vacía de las barras. No se usan directamente, sino en la regeneración de las imágenes de barra."
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## Colores del texto del diálogo y menú."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Tipos y tamaños de letra"
# gui.rpy:58
old "## The font used for in-game text."
new "## El tipo de letra del texto del juego"
# gui.rpy:61
old "## The font used for character names."
new "## El tipo de letra de los nombres de personajes"
# gui.rpy:64
old "## The font used for out-of-game text."
new "## El tipo de letra del texto externo al juego."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## El tamaño normal del texto del diálogo."
# gui.rpy:70
old "## The size of character names."
new "## El tamaño de los nombres de los personajes"
# gui.rpy:73
old "## The size of text in the game's user interface."
new "## El tamaño del texto en la interfaz."
# gui.rpy:76
old "## The size of labels in the game's user interface."
new "## El tamaño de etiquetas en la interfaz."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## El tamaño del texto en las notificaciones."
# gui.rpy:82
old "## The size of the game's title."
new "## El tamaño del título del juego."
# gui.rpy:86
old "## Main and Game Menus"
new "## Menú principal y menús del juego"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## Imágenes del menú principal y menús del juego."
# gui.rpy:93
old "## Dialogue"
new "## Diálogo"
# gui.rpy:95
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## Estas variables controlan cómo se muestra el diálogo en le pantalla, una línea cada vez."
# gui.rpy:98
old "## The height of the textbox containing dialogue."
new "## Altura de la caja de texto que contiene el diálogo."
# gui.rpy:101
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## Colocación vertical de la caja de texto en la pantalla. 0.0 para la parte superior, 0.5 para el centro y 1.0 para la parte inferior."
# gui.rpy:106
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## Colocación del nombre del personaje hablante, relativa a la caja de texto. Puede ser el númerode píxels desde la esquina superior izquierda, o 0.5 para centrar."
# gui.rpy:111
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## La alineación horizontal del nombre del personaje. (0.0 es izquierda, 0.5 es centro, 1.0 es derecha)."
# gui.rpy:115
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## La anchura, altura y bordes de la caja que contiene el nombre del personaje, o 'None' para dimensión automática."
# gui.rpy:120
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## Los bordes de la caja que contiene el nombre del personaje, en orden: izquierda, arriba, derecha, abajo."
# gui.rpy:124
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
new "## Si es 'True, el fondo de la caja del nombre será en mosaico, si es 'False', el fondo, si la caja del nombre es escalada."
# gui.rpy:129
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
new "## Colocación del diálogo relativa a la caja de texto. Puede ser el número de píxels relativos a la esquina superor izquierda o 0.5 para centrar."
# gui.rpy:135
old "## The maximum width of dialogue text, in pixels."
new "## La anchura máxima del texto del diálogo, en píxels."
# gui.rpy:138
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## La alineación horizontal del texto del diálogo. (0.0 es izquierda, 0.5 es centro, 1.0 es derecha)."
# gui.rpy:143
old "## Buttons"
new "## Botones"
# gui.rpy:145
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## Estas variables, junto con las imágenes de 'gui/button', controal el aspecto de los botones."
# gui.rpy:148
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## La anchura y altura del botón, en píxels. Si es 'None', Ren'Py calcula el tamaño."
# gui.rpy:152
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## Los bordes de cada lado del botón, en orden: izquerda, arriba, derecha, abajo."
# gui.rpy:155
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## Si es 'True, la imagen de fondo será en mosaico. Si es 'False', la imagen de fondo será escalada linealmente."
# gui.rpy:159
old "## The font used by the button."
new "## Tipo de letra del botón."
# gui.rpy:162
old "## The size of the text used by the button."
new "## Tamaño de letra del botón."
# gui.rpy:165
old "## The color of button text in various states."
new "## El color del texto del botón en varios estados."
# gui.rpy:174
# gui.rpy:171
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## La alineación horizontal del texto del botón. (0.0 es izquierda, 0.5 es centro, 1.0 es derecha)."
# gui.rpy:395
# gui.rpy:176
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## Estas variables invalidan ajustes para diversos tipos de botones. Ver en la documentación los tipos de botones disponibles y el uso de cada uno."
# gui.rpy:180
old "## These customizations are used by the default interface:"
new "## Personalizaciones de la interfaz por defecto:"
# gui.rpy:195
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## Se pueden añadir personalizaciones propias con variables con los nombres adecuados. Por ejemplo, es posible descomentar la linea siguiente para ajustar la anchura de los botones de navegación."
# gui.rpy:202
old "## Choice Buttons"
new "## Botones de opción"
# gui.rpy:204
old "## Choice buttons are used in the in-game menus."
new "## Los botones de opción se utilizan en los menús del juego."
# gui.rpy:217
old "## File Slot Buttons"
new "## Botones de partidas"
# gui.rpy:219
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## El botón de hueco de partida es un botón especial. Contiene una miniatura y texto que describe el contenido del hueco de partida. Usa imágenes de 'gui/button' como los otros botones."
# gui.rpy:223
old "## The save slot button."
new "## Botón de guardar partida"
# gui.rpy:233
old "## The width and height of thumbnails used by the save slots."
new "## La anchura y altura de las miniaturas de las partidas guardadas."
# gui.rpy:237
old "## The number of columns and rows in the grid of save slots."
new "## Número de columnas y filas de la cuadrícula de partidas guardadas."
# gui.rpy:242
old "## Positioning and Spacing"
new "## Posicionamiento y espacios"
# gui.rpy:244
old "## These variables control the positioning and spacing of various user interface elements."
new "## Estas variables controlan la posición y espacios de diversos elementos de la interfaz."
# gui.rpy:247
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## Posición del lado izquierdo de los botones de navegación, relativo al lado izquierdo de la pantalla."
# gui.rpy:251
old "## The vertical position of the skip indicator."
new "## Posición vertical del indicador de salto."
# gui.rpy:254
old "## The vertical position of the notify screen."
new "## Posición vertical de la pantalla de notificación."
# gui.rpy:257
old "## The spacing between menu choices."
new "## Espacio entre opciones de menú."
# gui.rpy:260
old "## Buttons in the navigation section of the main and game menus."
new "## Botones en la sección de navegación del menú principal y el menú del juego."
# gui.rpy:263
old "## Controls the amount of spacing between preferences."
new "## Controla el espacio entre preferencias."
# gui.rpy:266
old "## Controls the amount of spacing between preference buttons."
new "## Controla el espacio entre botones de preferencia."
# gui.rpy:269
old "## The spacing between file page buttons."
new "## Espacio entre botones de página."
# gui.rpy:272
old "## The spacing between file slots."
new "## Espacio entre huecos de guardado."
# gui.rpy:275
old "## The position of the main menu text."
new "## Posición del texto del menú principal."
# gui.rpy:279
old "## Frames"
new "## Marcos"
# gui.rpy:281
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## Estas variables controlan la apariencia de los marcos que pueden contener componentes de la interfaz cuando no está presente una ventana."
# gui.rpy:284
old "## Generic frames."
new "## Marcos genéricos"
# gui.rpy:287
old "## The frame that is used as part of the confirm screen."
new "## Marco usado en la pantalla de confirmación."
# gui.rpy:290
old "## The frame that is used as part of the skip screen."
new "## Marco usado en la pantalla de salto."
# gui.rpy:293
old "## The frame that is used as part of the notify screen."
new "## Marco usado en la pantalla de notificación."
# gui.rpy:296
old "## Should frame backgrounds be tiled?"
new "## ¿El fondo del marco debe ser en mosaico?"
# gui.rpy:300
old "## Bars, Scrollbars, and Sliders"
new "## Barras, barras de desplazamiento y deslizadores"
# gui.rpy:302
old "## These control the look and size of bars, scrollbars, and sliders."
new "## Aquí se controla la apariencia y dimensiones de barras, barras de deslizamiento y deslizadores."
# gui.rpy:304
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## La GUI por defecto solo usa deslizadores y barras de deslizamiento verticales. Las otras barras solo se usan en pantallas escritas por el desarrollador."
# gui.rpy:307
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## Altura de las barras, barras de deslizamiento y deslizadores horizontales. Anchura de barras, barras de deslizamiento y deslizadores verticales."
# gui.rpy:313
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## 'True' si la imagen de las barras debe ser en mosaico. 'False' si deben ser escaladas linealmente."
# gui.rpy:318
old "## Horizontal borders."
new "## Bordes horizontales."
# gui.rpy:323
old "## Vertical borders."
new "## Bordes verticales."
# gui.rpy:328
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## Qué hacer con barras de deslizamiento no deslizables en la 'gui'. \"hide\" las esconde mientras que 'None' las muestra."
# gui.rpy:333
old "## History"
new "## Historial"
# gui.rpy:335
old "## The history screen displays dialogue that the player has already dismissed."
new "## La pantalla de historial muestra diálogo que el jugador ya ha visto."
# gui.rpy:337
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## Número de bloques de historial de diálogo que Ren'Py conserva."
# gui.rpy:340
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## Altura de una entrada de la pantalla de historial, o 'None' para altura variable a costa de rendimiento."
# gui.rpy:344
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## Posición, anchura y alineación de la etiqueta con el nombre del personaje hablante."
# gui.rpy:351
old "## The position, width, and alignment of the dialogue text."
new "## Posición, anchura y alineación del texto del diálogo."
# gui.rpy:358
old "## NVL-Mode"
new "## Modo-NVL"
# gui.rpy:360
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## La pantalla NVL-mode presenta el diálogo hablado por personajes en modo NVL."
# gui.rpy:362
old "## The borders of the background of the NVL-mode background window."
new "## Bordes del fondo de la ventana del modo NVL."
# gui.rpy:365
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
new "## Máximo número de entradas en modo NVL que Ren'Py presentará. Al presentar más entradas, se borrarán las más antiguas."
# gui.rpy:369
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## Altura de una entrada en modo NVL. Ajusta a 'None' para que las entradas ajusten la altura dinámicamente."
# gui.rpy:373
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## Espacio entre entradas en modo NVL cuando 'gui.nvl_height' es None, y entre las entradas en modo NVL y el menú en modo NVL."
# gui.rpy:390
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## Posición, anchura y alineación del texto 'nvl_thought' (texto dicho por el personaje 'nvl_narrator')."
# gui.rpy:397
old "## The position of nvl menu_buttons."
new "## Posición de los botones de menú NVL."
# gui.rpy:401
old "## Localization"
new "## Localización"
# gui.rpy:397
# gui.rpy:403
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
new "## Esto controla donde se permite un salto de línea. El valor por defecto es adecuado para la mayoria de idiomas. Puede encontrar una lista de valores disponibles en https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui.rpy:405
# gui.rpy:411
old "## Mobile devices"
new "## Dispositivos Móviles"
# gui.rpy:416
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Esto aumenta el tamaño de los bottones rápidos para facilitar su acceso en tablets y teléfonos."
# gui.rpy:422
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Esto cambia el tamaño y espaciado de varios elementos de la GUI para asegurar que sean fácilmente visibles en los teléfonos."
# gui.rpy:426
old "## Font sizes."
new "## Tamaños de letra."
# gui.rpy:434
old "## Adjust the location of the textbox."
new "## Ajusta la colocación de la caja de texto."
# gui.rpy:440
old "## Change the size and spacing of various things."
new "## Cambia el tamaño y espaciado de varios elementos."
# gui.rpy:453
old "## File button layout."
new "## Distribución de botones de archivo."
# gui.rpy:457
old "## NVL-mode."
new "## Modo-NVL"
File diff suppressed because it is too large Load Diff
-1
View File
@@ -24,4 +24,3 @@ translate spanish strings:
# _compat/gamemenu.rpym:362
old "Next"
new "Siguiente"
+120 -117
View File
@@ -3,23 +3,23 @@ translate spanish strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## This file contains options that can be changed to customize your game."
new "## Este archivo contiene opciones que pueden cambiarse para personalizar el juego."
# options.rpy:4
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Las líneas que empiezan con doble '#' son comentarios, no deben ser descomentadas. Las líneas que empiezan con simple '#' son código comentado, puedes descomentarlas si es apropiado."
# options.rpy:10
old "## Basics"
new "## Basics"
new "## Básico"
# options.rpy:12
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## Nombre del juego en forma legible. Usado en el título de la ventana del juego, en la interfaz y en los informes de error."
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## The _() surrounding the string marks it as eligible for translation."
new "## El _() que rodea la cadena de texto la señala como traducible."
# options.rpy:17
old "Ren'Py 7 Default GUI"
@@ -27,173 +27,176 @@ translate spanish strings:
# options.rpy:20
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determina si el título dado más arriba se muestra en el menú principal. Ajústalo a 'False' para esconder el título."
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
new "## Versión del juego."
# options.rpy:31
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
new "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
new "## Texto situado en la pantalla 'Acerca de' del juego. Sitúa el texto entre comillas triples y deja una línea en blanco entre párrafos."
# options.rpy:37
# options.rpy:38
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
new "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
new "## Nombre breve del juego para ejecutables y directorios en la distribución. Debe contener solo carácteres ASCII, sin espacios, comas o puntos y coma."
# options.rpy:44
# options.rpy:45
old "## Sounds and music"
new "## Sounds and music"
new "## Sonidos y música"
# options.rpy:46
# options.rpy:47
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Estas tres variables controlan los mezcladores mostrados por defecto al jugador. Ajustar alguno a 'False' para esconderlo."
# options.rpy:55
# options.rpy:56
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
new "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
new "## Para permitir al usuario probar el volumen de los canales de sonido o voz, descomenta la línea más abajo y ajústala a un sonido de ejemplo."
# options.rpy:62
# options.rpy:63
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
new "## Descomenta la línea siguiente para ajustar un archivo de audio que sonará en el menú principal. Este archivo seguirá sonando en el juego hasta que sea detenido o se reproduzca otro archivo."
# options.rpy:69
# options.rpy:70
old "## Transitions"
new "## Transitions"
new "## Transiciones"
# options.rpy:71
# options.rpy:72
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## Estas variables ajustan transiciones usadas ante ciertos eventos. Cada variable debe indicar una transición o bien 'None', cuando no se desea usar ninguna transición."
# options.rpy:75
# options.rpy:76
old "## Entering or exiting the game menu."
new "## Entering or exiting the game menu."
new "## Entrar o salir del manú del juego."
# options.rpy:81
# options.rpy:82
old "## Between screens of the game menu."
new "## Entre pantallas del menú del juego."
# options.rpy:87
old "## A transition that is used after a game has been loaded."
new "## A transition that is used after a game has been loaded."
new "## Transición tras la carga de una partida."
# options.rpy:86
# options.rpy:92
old "## Used when entering the main menu after the game has ended."
new "## Used when entering the main menu after the game has ended."
new "## Transición de acceso al menú principal tras finalizar el juego."
# options.rpy:91
# options.rpy:97
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## No existe la variable que ajusta la transición cuando el juego comienza. Para ello se usa la sentencia 'with' al mostrar la escena inicial."
# options.rpy:96
# options.rpy:102
old "## Window management"
new "## Window management"
new "## Gestión de ventanas"
# options.rpy:98
# options.rpy:104
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
# options.rpy:103
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## Esto controla cuándo se muestra la ventana de diálogo. Si es \"show\", es siempre visible. Si es \"hide\", solo se muestra cuando hay diálogo presente. Si es \"auto\", la ventana se esconde antes de las sentencias 'scene' y se muestra de nuevo cuando hay diálogo que presentar."
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
new "## Transitions used to show and hide the dialogue window"
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## Una vez comenzado el juego, esto se puede ajustar con las sentencias \"window show\", \"window hide\", y \"window auto\"."
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
old "## Transitions used to show and hide the dialogue window"
new "## Transiciones usadas para mostrar o esconder la ventana de diálogo"
# options.rpy:117
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
# options.rpy:121
old "## Preference defaults"
new "## Preferencias por defecto"
# options.rpy:123
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Controla la velocidad del texto por defecto. El valor por defecto 0 indica infinito; cualquier otro número indica el número de caracteres por segundo que se mostrarán."
# options.rpy:129
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## El retraso por defecto del auto-avance. Números más grandes indican esperas mayores. El rango válido es 0-30."
# options.rpy:135
old "## Save directory"
new "## Save directory"
new "## Directorio de guardado"
# options.rpy:131
# options.rpy:137
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## Controla el lugar en el que Ren'Py colocará los archivos de guardado, dependiendo de la plataforma."
# options.rpy:134
# options.rpy:140
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
new "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
# options.rpy:136
# options.rpy:142
old "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
new "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
# options.rpy:138
# options.rpy:144
old "## Linux: $HOME/.renpy/<config.save_directory>"
new "## Linux: $HOME/.renpy/<config.save_directory>"
# options.rpy:140
# options.rpy:146
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## Normalmente, este valor no debe ser modificado. Si lo es, debe ser siempre una cadena literal y no una expresn."
# options.rpy:146
old "## Icon ########################################################################'"
new "## Icon ########################################################################'"
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
# options.rpy:155
old "## This section controls how Ren'Py turns your project into distribution files."
new "## This section controls how Ren'Py turns your project into distribution files."
# options.rpy:160
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
# options.rpy:165
old "## In a pattern:"
new "## In a pattern:"
# options.rpy:167
old "## / is the directory separator."
new "## / is the directory separator."
# options.rpy:169
old "## * matches all characters, except the directory separator."
new "## * matches all characters, except the directory separator."
# options.rpy:171
old "## ** matches all characters, including the directory separator."
new "## ** matches all characters, including the directory separator."
# options.rpy:173
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
# options.rpy:177
old "## Classify files as None to exclude them from the built distributions."
new "## Classify files as None to exclude them from the built distributions."
# options.rpy:185
old "## To archive files, classify them as 'archive'."
new "## To archive files, classify them as 'archive'."
# options.rpy:190
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
# options.rpy:196
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
# options.rpy:203
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## The username and project name associated with an itch.io project, separated by a slash."
# options.rpy:146
# options.rpy:152
old "## Icon"
new "## Icono"
# options.rpy:154
old "## The icon displayed on the taskbar or dock."
new "## El icono mostrado en la barra de tareas."
# options.rpy:159
old "## Build configuration"
new "## Configuración de 'Build'"
# options.rpy:161
old "## This section controls how Ren'Py turns your project into distribution files."
new "## Esta sección contrla cómo Ren'Py convierte el proyecto en archivos para la distribución."
# options.rpy:166
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## Las funciones siguientes toman patrones de archivos. No son relevantes las mayúsculas o minúsculas. Son relativos al directorio base, con o sin una / inicial. Si corresponden más de un patrón, se usa el primero."
# options.rpy:171
old "## In a pattern:"
new "## En un patrón:"
# options.rpy:173
old "## / is the directory separator."
new "## / es el separador de directorios."
# options.rpy:175
old "## * matches all characters, except the directory separator."
new "## * corresponde a todos los carácteres, excepto el separador de directorios."
# options.rpy:177
old "## ** matches all characters, including the directory separator."
new "## ** corresponde a todos los carácteres, incluynedo el separador de directorios."
# options.rpy:179
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## Por ejemplo, \"*.txt\" corresponde a los archivos .txt en el directorio de base, \"game/**.ogg\" corresponde a los archivos .ogg del directorio 'game' y sus subdirectorios y \"**.psd\" corresponde a los archivos .psd en cualquier parte del proyecto."
# options.rpy:183
old "## Classify files as None to exclude them from the built distributions."
new "## Clasifica archivos como 'None' para excluirlos de la distribución."
# options.rpy:191
old "## To archive files, classify them as 'archive'."
new "## Para archivar, se clasifican como 'archive'."
# options.rpy:196
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Los archivos que corresponden a patrones de documentation se duplican en la distribución de mac; aparecerán en los archivos app y zip."
# options.rpy:202
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
new "## Ajusta la cadena que contiene tu 'Apple Developer ID Application' para permitir el firmado en Mac. Asegúrate de cambiarlo a tu propia ID facilitada por Apple."
# options.rpy:209
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## Es necesaria una clave de licencia Google Play para descargar archivos de expansión y realizar compras en la aplicación. Se puede encontrar en la página \"Services & APIs\" de la consola de desarrollador de Google Play."
# options.rpy:216
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Los nombres de usuario y de proyecto asociados con un proyecto itch.io, separados por una barra."
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -9,18 +9,20 @@ define e = Character("Eileen")
label start:
# Muestra una imagen de fondo:
# Muestra una imagen de fondo: Aquí se usa un marcador de posición por
# defecto. Es posible añadir un archivo en el directorio 'images' con el
# nombre "bg room.png" or "bg room.jpg" para que se muestre aquí.
scene bg room
# Muestra un personaje:
# Muestra un personaje: Se usa un marcador de posición. Es posible
# reemplazarlo añadiendo un archivo llamado "eileen happy.png" al directorio
# 'images'.
show eileen happy
# Presenta las líneas del diálogo.
"¡Hola, mundo!"
e "Has creado un nuevo juego Ren'Py."
e "Añade una historia, imágenes y música, ¡y puedes presentarlo al mundo!"
@@ -34,8 +34,8 @@ translate traditional_chinese strings:
new "要建立 Android 套件,請下載 RAPT,並解壓縮到 Ren'Py 目錄下。然後重新啟動 Ren'Py 啟動器。"
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "需要一個 32 位元的 Java 開發套件(JDK)來在 Windows 中建立 Android 套件。JDK 不同於 JRE,所以您可能有 Java 但不包含 JDK。\n\n請 {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}下載并安裝 JDK{/a},然後重新啟動 Ren'Py 啟動器。"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "需要一個 32 位元的 Java 開發套件(JDK)來在 Windows 中建立 Android 套件。JDK 不同於 JRE,所以您可能有 Java 但不包含 JDK。\n\n請 {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}下載并安裝 JDK{/a},然後重新啟動 Ren'Py 啟動器。"
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+2 -2
View File
@@ -34,8 +34,8 @@ translate vietnamese strings:
new "Để xây dựng các gói Android, hãy tải về RAPT, giải nén nó và đặt nó vào thư mục Ren'Py. Sau đó khởi động lại Ren'Py."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Cần một bản 32-bit Java Development Kit để xây dựng gói Android trên Windows. JDK khác với JRE, vì vậy có thể là bạn có Java nhưng ko có JDK.\n\n Hãy vào {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download và cài đặt JDK{/a}, rồi khởi động lại Renpy. "
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Cần một bản x86 Java Development Kit để xây dựng gói Android trên Windows. JDK khác với JRE, vì vậy có thể là bạn có Java nhưng ko có JDK.\n\n Hãy vào {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download và cài đặt JDK{/a}, rồi khởi động lại Renpy. "
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
+10 -3
View File
@@ -238,6 +238,9 @@ typedef struct MediaState {
/* The wall time the last video frame was read. */
double video_read_time;
/* Are frame drops allowed? */
int frame_drops;
} MediaState;
static AVFrame *dequeue_frame(FrameQueue *fq);
@@ -671,7 +674,7 @@ static SurfaceQueueEntry *decode_video_frame(MediaState *ms) {
return NULL;
}
// If we're behind on decoding the frame, skip it.
// If we're behind on decoding the frame, drop it.
if (ms->video_pts_offset && (ms->video_pts_offset + pts < ms->video_read_time)) {
// If we're 5s behind, give up on video for the time being, so we don't
@@ -680,7 +683,9 @@ static SurfaceQueueEntry *decode_video_frame(MediaState *ms) {
ms->video_finished = 1;
}
return NULL;
if (ms->frame_drops) {
return NULL;
}
}
SDL_Surface *sample = rgba_surface;
@@ -1159,6 +1164,7 @@ MediaState *media_open(SDL_RWops *rwops, const char *filename) {
ms->lock = SDL_CreateMutex();
ms->audio_duration = -1;
ms->frame_drops = 1;
return ms;
}
@@ -1189,8 +1195,9 @@ void media_start_end(MediaState *ms, double start, double end) {
/**
* Marks the channel as having video.
*/
void media_want_video(MediaState *ms) {
void media_want_video(MediaState *ms, int video) {
ms->want_video = 1;
ms->frame_drops = (video != 2);
}
void media_close(MediaState *ms) {
+1
View File
@@ -134,6 +134,7 @@ style_properties = sorted_dict(
aft_bar='none_is_null',
aft_gutter=None,
alt=None,
altruby_style=None,
antialias=None,
vertical=None,
background='renpy.easy.displayable_or_none',
+4 -3
View File
@@ -41,7 +41,7 @@ void media_advance_time(void);
void media_sample_surfaces(SDL_Surface *rgb, SDL_Surface *rgba);
MediaState *media_open(SDL_RWops *, const char *);
void media_want_video(MediaState *);
void media_want_video(MediaState *, int);
void media_start_end(MediaState *, double, double);
void media_start(MediaState *);
void media_close(MediaState *);
@@ -199,7 +199,8 @@ struct Channel {
unsigned int vol2_length;
unsigned int vol2_done;
/* This is set to true if this is a movie channel. */
/* This is set to 1 if this is a movie channel with dropping, 2 if it's a
* video channel without dropping. */
int video;
};
@@ -566,7 +567,7 @@ struct MediaState *load_sample(SDL_RWops *rw, const char *ext, double start, dou
media_start_end(rv, start, end);
if (video) {
media_want_video(rv);
media_want_video(rv, video);
}
media_start(rv);
-1
View File
@@ -1 +0,0 @@
../help.html
Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.
-99
View File
@@ -1,99 +0,0 @@
# This file demonstrates how Character objects can be used to customize the
# display of text.
init:
# With a nestled click-to-continue indicator.
$ ectc = Character(_('Eileen'),
color="#c8ffc8",
ctc=anim.Blink("arrow.png"))
# With a fixed-position ctc indicator.
$ ectcf = Character(_('Eileen'),
color="#c8ffc8",
ctc=anim.Filmstrip("sakura.png", (20, 20), (2, 1), .30, xpos=760, ypos=560, xanchor=0, yanchor=0),
ctc_position="fixed")
# With quotes around text.
$ equote = Character(_('Eileen'),
color="#c8ffc8",
who_suffix = ':',
what_prefix='"',
what_suffix='"')
# Weird-looking.
$ eweird = Character(_('Eileen'),
color="#c8ffc8",
what_underline=True,
window_left_margin=200,
window_yminimum=300)
# Two-window mode.
$ etwo = Character(_('Eileen'),
color="#c8ffc8",
show_two_window=True)
# Image on the side.
$ eside = Character(_('Eileen'),
color="#c8ffc8",
window_left_padding=160,
show_side_image=Image("eileen_side.png", xalign=0.0, yalign=1.0))
label demo_character:
e "The Character object is used to declare characters, and it can also be used to customize the way in which a character speaks."
e "By supplying it with the appropriate arguments, we can really change around the feel of the game."
e "In this section, we'll demonstrate some of what can be accomplished by customizing character objects."
equote "By supplying what_prefix and what_suffix arguments to a Character object, we can automatically add things before each line of text."
equote "This is a lot easier than having to put those quotes in by hand."
equote "We can also use who_prefix and who_suffix to add text to the name of the speaker."
e "We can also supply arguments to the Character object that customize the look of the character name, the text that is being said, and the window itself."
eweird "These can really change the look of the game."
eside "A more practical use of that is in conjunction with show_side_image, which lets us position an image next to the text."
etwo "There's also show_two_window, which puts the character's name in its own window."
ectc "Finally, we demonstrate a click to continue indicator. In this example, it's nestled in with the text."
ectcf "A click to continue image can also be placed at a fixed location on the screen."
e "There's a lot more you can do with Character, as it lets you set style properties on all of the displayed text."
e "Finally, let me point out a couple of special characters we pre-define."
show black
with dissolve
centered "The \"centered\" character shows text at the center of the screen, without a window."
centered "It's just a highly customized normal character, that's useful for dates and titles."
hide black
with dissolve
e "The \"extend\" character is very special."
e "It lets you"
show eileen vhappy
extend " extend the previous dialogue"
show eileen happy
extend " with additional text."
e "That lets you have things happen in the middle of text. If you didn't notice, I was changing my expression."
e "Hopefully, these characters, along with the ones you define, will lead to a very expressive game."
return
-38
View File
@@ -1,38 +0,0 @@
# This file demonstrates how to use DynamicDisplayable to make parts of the
# display that update without there being an interaction.
init:
python:
# This function will run a countdown of the given length. It will
# be white until 5 seconds are left, and then red until 0 seconds are
# left, and then will blink 0.0 when time is up.
def countdown(st, at, length=0.0):
remaining = length - st
if remaining > 5.0:
return Text("%.1f" % remaining, color="#fff", size=72), .1
elif remaining > 0.0:
return Text("%.1f" % remaining, color="#f00", size=72), .1
else:
return anim.Blink(Text("0.0", color="#f00", size=72)), None
# Show a countdown for 10 seconds.
image countdown = DynamicDisplayable(countdown, length=10.0)
label demo_dynamic:
e "The DynamicDisplayable function lets you change what's displayed over the course of an interaction."
show countdown at Position(xalign=.1, yalign=.1)
e "This makes it possible to display things like countdown timers and progress bars."
e "Remember, people read at different speeds, so it's probably better to use this for flavor, rather then to make games time-sensitive."
hide countdown
with dissolve
return
-204
View File
@@ -1,204 +0,0 @@
# This file demonstrates the use of image operators.
init:
image logo base = "logo.png"
image logo crop = im.Crop("logo.png", 0, 0, 100, 307)
image logo scale = im.Scale("logo.png", 100, 150)
image logo factorscale = im.FactorScale("logo.png", 1.5, 1.5)
image logo composite = im.Composite((200, 407),
(0, 0), "logo.png",
(0, 50), "logo.png",
(0, 100), "logo.png")
image logo livecomposite = LiveComposite((200, 407),
(0, 0), anim.Blink(Image("logo.png")),
(0, 50), "logo.png",
(0, 100), "logo.png")
image logo green = im.Map("logo.png", rmap=im.ramp(0, 0))
image logo green2 = im.Recolor("logo.png", 0, 255, 255, 255)
image logo alpha = im.Alpha("logo.png", 0.5)
image logo blackwhite = "logobw.png"
image logo twocolor = im.Twocolor("logobw.png",
(128, 255, 255, 255),
(255, 0, 0, 255))
image eileen alpha = im.Alpha("images/eileen happy.png", 0.5)
image eileen flip = im.Flip("images/eileen happy.png", vertical=True)
image logo halfsat = im.MatrixColor("logo.png",
im.matrix.saturation(.5))
# This could be better done with im.matrix.invert(), but I want to show
# how to use a matrix.
image logo invert = im.MatrixColor("logo.png",
[ -1, 0, 0, 0, 1,
0, -1, 0, 0, 1,
0, 0, -1, 0, 1,
0, 0, 0, 1, 0, ])
image logo tintblue = im.MatrixColor("logo.png",
im.matrix.saturation(.5) * im.matrix.tint(.75, .75, 1.0))
image logo hue = im.MatrixColor("logo.png",
im.matrix.hue(90))
image logo bright = im.MatrixColor("logo.png",
im.matrix.brightness(.5))
image logo sepia = im.Sepia("logo.png")
image logo grayscale = im.Grayscale("logo.png")
$ logopos = Position(xpos=.5, xanchor=0, ypos=50, yanchor=0)
label demo_imageops:
e "Image operations allow us to manipulate images as they are loaded in."
e "They're efficient, as they are only evaluated when an image is first loaded."
e "This way, there's no extra work that needs to be done when each frame is drawn to the screen."
show eileen happy at left
with move
show logo base at logopos
with dissolve
e "Let me show you a test image, the Ren'Py logo."
e "We'll be applying some image operations to it, to see how they can be used."
show logo crop at logopos
with dissolve
e "The im.Crop operation can take the image, and chop it up into a smaller image."
show logo composite at logopos
with dissolve
e "The im.Composite operation lets us take multiple images, and draw them into a single image."
e "While you can do this by showing multiple images, this is often more efficient."
show logo livecomposite at logopos
with dissolve
e "There's also LiveComposite, which is less efficent, but allows for animation."
e "It isn't really an image operation, but we don't know where else to put it."
show logo scale at logopos
with dissolve
e "The im.Scale operation lets us scale an image to a particular size."
show logo factorscale at logopos
with dissolve
e "im.FactorScale lets us do the same thing, except to a factor of the original size."
show logo green at logopos
with dissolve
e "The im.Map operation lets us mess with the red, green, blue, and alpha channels of an image."
e "In this case, we removed all the red from the image, leaving only the blue and green channels."
show logo base at logopos
with dissolve
show logo green2 at logopos
with dissolve
e "The im.Recolor operation can do the same thing, but is more efficient when we're linearly mapping colors."
show logo blackwhite at logopos
with dissolve
e "The im.Twocolor operation lets you take a black and white image, like this one..."
show logo twocolor at logopos
with dissolve
e "... and assign colors to replace black and white."
show logo halfsat at logopos
with dissolve
e "The im.MatrixColor operation lets you use a matrix to alter the colors. With the right matrix, you can desaturate colors..."
show logo tintblue at logopos
with dissolve
e "... tint the image blue..."
show logo hue at logopos
with dissolve
e "... rotate the hue... "
show logo invert at logopos
with dissolve
e "... or invert the colors, for a kinda scary look."
show logo bright at logopos
with dissolve
e "It can even adjust brightness and contrast."
e "We've made some of the most common matrices into image operators."
show logo grayscale at logopos
with dissolve
e "im.Grayscale can make an image grayscale..."
show logo sepia at logopos
with dissolve
e "... while im.Sepia can sepia-tone an image."
show logo base at logopos
with dissolve
show logo alpha at logopos
with dissolve
e "The im.Alpha operation can adjust the alpha channel on an image, making things partially transparent."
show eileen alpha at left
with dissolve
e "It's useful if a character just happens to be ghost."
hide logo
show eileen happy at left
with dissolve
e "But that isn't the case with me."
show eileen happy
with move
show eileen flip
with dissolve
e "Finally, there's im.Flip, which can flip an image horizontally or vertically."
e "I think the less I say about this, the better."
show eileen happy
with dissolve
return
-92
View File
@@ -1,92 +0,0 @@
# Code that demonstrates layers and advanced show.
init:
# Declare a layer, 'demo', that lives just above the default 'master'
# layer.
$ config.layers.insert(1, 'demo')
# Make it so that it only takes up part of the screen.
$ config.layer_clipping['demo'] = (50, 50, 700, 500)
label demo_layers:
e "Ren'Py lets you define layers, and show images on specific layers."
hide eileen
with dissolve
show bg whitehouse onlayer demo
with dissolve
show eileen happy onlayer demo
with dissolve
e "The \"onlayer\" clause of the scene, show, and hide statements lets us pick which layers the commands affect."
e "As you can see, layers do not have to take up the entire screen. When a layer doesn't, images are clipped to the layer."
scene onlayer demo
show eileen happy
with dissolve
e "The \"as\" clause lets you change the tag of an image."
show eileen happy as eileen2
with None
show eileen happy at left
show eileen happy at right as eileen2
with move
e "This is useful when you want to show two copies of the same image."
e "Or if a character has a twin."
show eileen happy at center
show eileen happy at offscreenright as eileen2
with move
hide eileen2
show expression Text(_("This is text."), size=50, yalign=0.5, xalign=0.5, drop_shadow=(2, 2)) as text
with dissolve
e "You can use \"show expression\" to show things that aren't just images, like text."
hide text
with dissolve
show logo base at Position(xalign=0.6, yalign=0.0) behind eileen
with dissolve
e "The \"behind\" clause lets you place an image behind another."
hide logo base
show eileen happy
with dissolve
show layer master:
xalign 0.5
yalign 0.5
linear 0.75 rotate 180.0
pause 0.75
e "Finally, the \"show layer\" statement allows you to apply a transform to an entire layer."
show layer master:
xalign 0.5
yalign 0.5
rotate 180.0
linear 0.75 rotate 360.0
pause 0.75
# Cancels the layer transform.
show layer master
e "And that's it for layers and advanced show."
return
-266
View File
@@ -1,266 +0,0 @@
init:
image bg pong field = "pong_field.png"
python:
class PongDisplayable(renpy.Displayable):
def __init__(self):
renpy.Displayable.__init__(self)
# Some displayables we use.
self.paddle = Image("pong.png")
self.ball = Image("pong_ball.png")
self.player = Text(_("Player"), size=36)
self.eileen = Text(_("Eileen"), size=36)
self.ctb = Text(_("Click to Begin"), size=36)
# The sizes of some of the images.
self.PADDLE_WIDTH = 8
self.PADDLE_HEIGHT = 79
self.BALL_WIDTH = 15
self.BALL_HEIGHT = 15
self.COURT_TOP = 108
self.COURT_BOTTOM = 543
# If the ball is stuck to the paddle.
self.stuck = True
# The positions of the two paddles.
self.playery = (self.COURT_BOTTOM - self.COURT_TOP) / 2
self.computery = self.playery
# The speed of the computer.
self.computerspeed = 350.0
# The position, dental-position, and the speed of the
# ball.
self.bx = 88
self.by = self.playery
self.bdx = .5
self.bdy = .5
self.bspeed = 300.0
# The time of the past render-frame.
self.oldst = None
# The winner.
self.winner = None
def visit(self):
return [ self.paddle, self.ball, self.player, self.eileen, self.ctb ]
# Recomputes the position of the ball, handles bounces, and
# draws the screen.
def render(self, width, height, st, at):
# The Render object we'll be drawing into.
r = renpy.Render(width, height)
# Figure out the time elapsed since the previous frame.
if self.oldst is None:
self.oldst = st
dtime = st - self.oldst
self.oldst = st
# Figure out where we want to move the ball to.
speed = dtime * self.bspeed
oldbx = self.bx
if self.stuck:
self.by = self.playery
else:
self.bx += self.bdx * speed
self.by += self.bdy * speed
# Move the computer's paddle. It wants to go to self.by, but
# may be limited by it's speed limit.
cspeed = self.computerspeed * dtime
if abs(self.by - self.computery) <= cspeed:
self.computery = self.by
else:
self.computery += cspeed * (self.by - self.computery) / abs(self.by - self.computery)
# Handle bounces.
# Bounce off of top.
ball_top = self.COURT_TOP + self.BALL_HEIGHT / 2
if self.by < ball_top:
self.by = ball_top + (ball_top - self.by)
self.bdy = -self.bdy
renpy.sound.play("pong_beep.wav", channel=0)
# Bounce off bottom.
ball_bot = self.COURT_BOTTOM - self.BALL_HEIGHT / 2
if self.by > ball_bot:
self.by = ball_bot - (self.by - ball_bot)
self.bdy = -self.bdy
renpy.sound.play("pong_beep.wav", channel=0)
# This draws a paddle, and checks for bounces.
def paddle(px, py, hotside):
# Render the paddle image. We give it an 800x600 area
# to render into, knowing that images will render smaller.
# (This isn't the case with all displayables. Solid, Frame,
# and Fixed will expand to fill the space allotted.)
# We also pass in st and at.
pi = renpy.render(self.paddle, 800, 600, st, at)
# renpy.render returns a Render object, which we can
# blit to the Render we're making.
r.blit(pi, (int(px), int(py - self.PADDLE_HEIGHT / 2)))
if py - self.PADDLE_HEIGHT / 2 <= self.by <= py + self.PADDLE_HEIGHT / 2:
hit = False
if oldbx >= hotside >= self.bx:
self.bx = hotside + (hotside - self.bx)
self.bdx = -self.bdx
hit = True
elif oldbx <= hotside <= self.bx:
self.bx = hotside - (self.bx - hotside)
self.bdx = -self.bdx
hit = True
if hit:
renpy.sound.play("pong_boop.wav", channel=1)
self.bspeed *= 1.10
# Draw the two paddles.
paddle(68, self.playery, 68 + self.PADDLE_WIDTH)
paddle(724, self.computery, 724)
# Draw the ball.
ball = renpy.render(self.ball, 800, 600, st, at)
r.blit(ball, (int(self.bx - self.BALL_WIDTH / 2),
int(self.by - self.BALL_HEIGHT / 2)))
# Show the player names.
player = renpy.render(self.player, 800, 600, st, at)
r.blit(player, (20, 25))
# Show Eileen's name.
eileen = renpy.render(self.eileen, 800, 600, st, at)
ew, eh = eileen.get_size()
r.blit(eileen, (790 - ew, 25))
# Show the "Click to Begin" label.
if self.stuck:
ctb = renpy.render(self.ctb, 800, 600, st, at)
cw, ch = ctb.get_size()
r.blit(ctb, (400 - cw / 2, 30))
# Check for a winner.
if self.bx < -200:
self.winner = "eileen"
# Needed to ensure that event is called, noticing
# the winner.
renpy.timeout(0)
elif self.bx > 1000:
self.winner = "player"
renpy.timeout(0)
# Ask that we be re-rendered ASAP, so we can show the next
# frame.
renpy.redraw(self, 0)
# Return the Render object.
return r
# Handles events.
def event(self, ev, x, y, st):
import pygame
# Mousebutton down == start the game by setting stuck to
# false.
if ev.type == pygame.MOUSEBUTTONDOWN and ev.button == 1:
self.stuck = False
# Set the position of the player's paddle.
y = max(y, self.COURT_TOP)
y = min(y, self.COURT_BOTTOM)
self.playery = y
# If we have a winner, return him or her. Otherwise, ignore
# the current event.
if self.winner:
return self.winner
else:
raise renpy.IgnoreEvent()
label demo_minigame:
e "You may want to mix Ren'Py with other forms of gameplay. There are many ways to do this."
e "The first is with the UI functions, which can be used to create powerful button and menu based interfaces."
e "These are often enough for many simulation-style games."
e "We also have two more ways in which Ren'Py can be extended. Both require experience with Python programming, and so aren't for the faint of heart."
e "Renpygame is a library that allows pygame games to be run inside Ren'Py."
e "When using renpygame, Ren'Py steps out of the way and gives you total control over the user's experience."
e "You can get renpygame from the Frameworks page of the Ren'Py website."
e "If you want to integrate your code with Ren'Py, you can write a user-defined displayable."
e "User-defined displayables are somewhat more limited, but integrate better with the rest of Ren'Py."
e "For example, one could support loading and saving while a user-defined displayable is shown."
e "Now, why don't we play some pong?"
label demo_minigame_pong:
window hide None
# Put up the pong background, in the usual fashion.
scene bg pong field
# Run the pong minigame, and determine the winner.
python:
ui.add(PongDisplayable())
winner = ui.interact(suppress_overlay=True, suppress_underlay=True)
scene bg washington
show eileen vhappy
window show None
if winner == "eileen":
e "I win!"
else:
e "You won! Congratulations."
show eileen happy
menu:
e "Would you like to play again?"
"Sure.":
jump demo_minigame_pong
"No thanks.":
pass
e "Remember to be careful about putting minigames in a visual novel, since not every visual novel player wants to be good at arcade games."
return
-79
View File
@@ -1,79 +0,0 @@
# This demonstrates nvl_mode.rpy.
init:
# Declare an nvl-version of eileen.
$ nvle = Character(_("Eileen"), color="#c8ffc8", kind=nvl)
$ config.adv_nvl_transition = dissolve
$ config.nvl_adv_transition = dissolve
label demo_nvlmode:
window hide
nvl clear
nvl show dissolve
nvle "NVL-style games are games that cover the full screen with text, rather then placing it in a file at the bottom of the screen."
nvle "Ren'Py ships with a file, nvl_mode.rpy, that implements NVL-style games. You're seeing an example of NVL-mode at work."
nvl clear
nvle "To use NVL-mode, you need to define Characters with a kind=nvl."
nvle "You use 'nvl clear' to clear the screen when that becomes necessary."
nvl hide dissolve
nvl show dissolve
nvle "The 'nvl show' and 'nvl hide' statements use transitions to show and hide the NVL window."
nvle "The nvl_erase function removes a line from the screen."
$ nvl_erase()
nvle "Like that."
# Doing this during the game isn't recommended, it's better to do
# it in an init block. We have to do it here because we need to use
# both kinds of menus.
$ menu = nvl_menu
menu:
nvle "The nvl_mode also supports showing menus to the user, provided they are the last thing on the screen. Understand?"
"Yes.":
nvl clear
nvle "Good!"
nvl clear
"No.":
nvl clear
nvle "Well, it might help if you take a look at the demo code."
nvl clear
eside "You can specify transitions that occur when going from NVL-mode to ADV-mode."
nvle "As well as when going from ADV-mode to NVL-mode."
nvle "Text tags like {{w}{w} work in NVL-mode."
extend " As does the \"extend\" special character."
nvle "And that's it for NVL-mode."
$ menu = renpy.display_menu
nvl hide dissolve
$ _last_say_who = None
window show dissolve
return
-37
View File
@@ -1,37 +0,0 @@
init:
$ mp = MultiPersistent("demo.renpy.org")
label demo_persistent:
"Ren'Py supports per-game and multi-game persistent data."
"Persistent data can store flags and other per-game information that should be shared between plays of a single game."
# per-game persistent data example.
python:
if persistent.plays is None:
persistent.plays = 1
else:
persistent.plays += 1
plays = persistent.plays
"For example, I can tell you that you've see this line [plays] time(s) since you cleared the per-game persistent data."
"Multipersistent data is shared between games, which lets one game unlock features in a second."
"A sequel might play differently if the player has beaten the first game."
# multipersistent data example.
python:
if mp.plays is None:
mp.plays = 1
else:
mp.plays += 1
mp.save()
plays = mp.plays
"According to the multipersistent data, you've seen this line [plays] times total."
return
-140
View File
@@ -1,140 +0,0 @@
# This file demonstrates some of the text-layout and handling
# capabilities of Ren'Py.
init:
# Register an sfont.
$ renpy.register_sfont('new_sfont', 22,
filename="new_sfont.png",
spacewidth=6)
# Declare a character that uses the sfont.
$ esfont = Character(_("Eileen"),
color="#c8ffc8",
what_font="new_sfont")
# Slow text.
$ eslow = Character(_("Eileen"),
color="#c8ffc8",
what_slow_cps=20)
# Outlined text.
$ eoutline = Character(_("Eileen"),
color="#c8ffc8",
what_outlines=[ (1, "#282") ])
# Use it in subtitle mode.
$ esubtitle = Character(None,
what_size=28,
what_outlines=[(3, "#0008", 2, 2), (3, "#282", 0, 0)],
what_layout="subtitle",
what_xalign=0.5,
what_text_align=0.5,
window_background=None,
window_yminimum=0,
window_xfill=False,
window_xalign=0.5)
# This is used to show the defintion text, by the hyperlink demostration
# code.
$ definition = Character(None,
window_yfill=True,
window_xmargin=20,
window_ymargin=30)
# The pink style, which we use as a custom text tag.
$ style.pink = Style(style.default)
$ style.pink.color = "#ffc0c0"
init python:
style.ruby_style = Style(style.default)
style.ruby_style.yoffset = -20
style.ruby_style.size = 12
define eruby = Character(
_("Eileen"),
color="#c8ffc8",
what_ruby_style=style.ruby_style,
what_line_leading=10)
label demo_text:
e "Ren'Py gives you quite a bit of control over how text appears."
e "Text tags let us control the appearance of text that is shown to the user."
e "Text tags can make text {b}bold{/b}, {i}italic{/i}, {s}struckthrough{/s}, or {u}underlined{/u}."
e "They can make the font size {size=+12}bigger{/size} or {size=-8}smaller{/size}."
e "They let you pause{w} the display of the text, optionally with{p}line breaks."
e "They let you include images inside text{image=exclamation.png} Neat{image=exclamation.png}"
e "We can pause the text for a short time, and have it auto-advance.{w=1} Just like that."
eslow "We can even have the text auto-advance,{nw}"
with flashbulb
extend " when we reach the end of a block of text, in slow text mode."
e "They can change the {color=#f00}color{/color} {color=#ff0}of{/color} {color=#0f0}the{/color} {color=#0ff}text{/color}."
# e "There are also bold, italic, strikethrough, and underline style properties, which can be styled onto any text."
e "The kerning tag lets you adjust the spacing between characters.\n{k=.5}The spacing between characters can be increased.{/k}\n{k=-.5}The spacing between characters can be decreased.{/k}"
eruby "You are able to write ruby text, which can help clarify how to pronounce words, like {rb}Ren'Py{/rb}{rt}ren-pie{/rt}."
e "{a=define_hyperlink}Hyperlinks{/a} let buttons be defined using text tags."
e "The space and vspace tags add {space=30} horizontal and {vspace=20}vertical space, respectively."
e "You can define your own text tags, {=pink}that use a style you define.{/=pink}"
e "If you find yourself using text tags on every line, you should probably look at style properties instead."
e "Used with care, text tags can enhance {b}your{/b} game."
e "{u}Used{/u} with {i}abandon,{/i} they {b}can{/b} make {b}your{/b} game {color=#333}hard{/color} {color=#888}to{/color} {color=#ccc}read{/color}."
e "With great power comes great responsibility, after all."
e "And we want to give you all the power you need."
e "There are a couple of text adjustments that don't correspond to text tags."
eoutline "The outlines setting lets you put outlines around the text."
eoutline "You can have more than one outline, and each has its own color and offset."
window hide
esubtitle "Here, we have two outlines around the white text."
esubtitle "The bottom one is a translucent black that's offset a little, while the top one is green."
esubtitle "By hiding the window and adjusting the layout method, we are able to create reasonable subtitles."
esubtitle "This might be an interesting look for a game."
window show
esfont "For even more control, Ren'Py supports SFonts, image files containing font information."
esfont "SFonts let you use fonts you otherwise couldn't, and apply special effects to fonts using your favorite image editor."
e "Well, that's it for fonts and text tags."
return
label define_hyperlink:
definition "A hyperlink is a button that is defined inside text, using text tags. They're ideal for including definitions of words used in the script, but they shouldn't be used in place of menus."
return
-222
View File
@@ -1,222 +0,0 @@
# This is the code for the logo example.
init python:
# This spins the logo, while at the same time zooming it and decreasing the
# alpha.
def logo_transform(t, st, at):
# Repeat every 10 seconds.
st = st % 7.0
# The move takes 5 seconds.
done = min(st / 5.0, 1.0)
t.xpos = done
t.xanchor = 1.0 - done
t.ypos = .5
t.yanchor = .5
t.rotate = 360 * done
t.alpha = 1.0 - done
t.zoom = 1.0 + done
return 0
# This is the code for the balls example. It's a bit complicated, but most of
# this is the code for ball movement and so on. Only a very little bit of this
# actually deals with Ren'Py.
init python:
import math
class Ball(object):
def __init__(self, filename, x, y, function=None):
self.transform = Transform(child=filename, xanchor=0.5, yanchor=0.5, rotate=0, function=function)
self.x = x
self.y = y
MAX_SPEED = 150
self.dx = renpy.random.uniform(-MAX_SPEED, MAX_SPEED)
self.dy = renpy.random.uniform(-MAX_SPEED, MAX_SPEED)
# Rotation speed.
self.drotate = renpy.random.uniform(0, 180)
# This is called
def balls_collide(p1, p2):
"""
Check to see if any of the balls are colliding. If they are,
then handle the collision.
"""
DOUBLE_RADIUS = 75
x21 = p2.x - p1.x
y21 = p2.y - p1.y
d = math.hypot(x21, y21)
# Return if too far.
if d > DOUBLE_RADIUS:
return
vx21 = p2.dx - p1.dx
vy21 = p2.dy - p1.dy
# Return if not approaching.
if (vx21 * x21 + vy21 * y21) > 0:
return
# Fix divide by zero.
if x21 == 0:
x21 = .00001
# Compute the collision.
a = y21 / x21
dvx2 = -(vx21 + a * vy21) / (1 + a * a)
p2.dx += dvx2
p2.dy += a * dvx2
p1.dx -= dvx2
p2.dy -= a * dvx2
# This is called by the first transform. It updates all of the
# transforms.
def balls_update(pilot, st, at):
global last_time
RADIUS = 75 / 2
LEFT = RADIUS
RIGHT = 800 - RADIUS
TOP = RADIUS
BOTTOM = 600 - RADIUS
# The pilot is the first ball in our list, and he's the one
# that gets last_time updated.
if last_time is None:
dt = 0
else:
dt = st - last_time
last_time = st
# Handle current collisions.
for i in xrange(0, len(balls)):
for j in xrange(i + 1, len(balls)):
balls_collide(balls[i], balls[j])
# Basic movement, and bouncing off the walls.
for i in balls:
i.x += i.dx * dt
i.y += i.dy * dt
if i.x < LEFT:
i.x = LEFT
i.dx = abs(i.dx)
if i.x > RIGHT:
i.x = RIGHT
i.dx = -abs(i.dx)
if i.y < TOP:
i.y = TOP
i.dy = abs(i.dy)
if i.y > BOTTOM:
i.y = BOTTOM
i.dy = -abs(i.dy)
# Update the transforms.
for i in balls:
# This is the code that deals with Ren'Py to update the
# various transforms. Note that we use absolute coordinates
# to position ourselves with subpixel accuracy.
i.transform.xpos = absolute(i.x)
i.transform.ypos = absolute(i.y)
i.transform.rotate = (i.drotate * st) % 360.0
i.transform.update()
return 0
# These are used in the button example:
init python:
def button_transform(t, st, at):
t.rotate = (90 * st) % 360.0
return 0
label demo_transform:
e "The Transform function allows you to rotate, zoom, move, and adjust the alpha of a displayable."
e "It does this under the control of a Python function, making it incredibly flexible at the cost of some complexity."
hide eileen
with dissolve
show logo base at Transform(function=logo_transform)
e "Here's a simple example, showing how we can change an image as it moves around the screen."
e "A nice thing about Transform is that it's \"one price\"."
e "If you use it to do a rotation, you can zoom or adjust alpha at no additional cost."
hide logo base
with dissolve
python:
last_time = None
# Define a list of ball objects.
balls = [
Ball("eileen_orb.png", 200, 150, function=balls_update),
Ball("lucy_orb.png", 400, 150),
Ball("eileen_orb.png", 600, 150),
Ball("lucy_orb.png", 200, 300),
Ball("lucy_orb.png", 600, 300),
Ball("eileen_orb.png", 200, 450),
Ball("lucy_orb.png", 400, 450),
Ball("eileen_orb.png", 600, 450),
]
# Add each ball's transform to the screen.
for i, b in enumerate(balls):
renpy.show("ball%d" % i, what=b.transform)
with dissolve
e "As the python functions get more complicated, more advanced behavior is possible."
e "This can include coordinating more than one Transform."
python:
for i, b in enumerate(balls):
renpy.hide("ball%d" % i)
with dissolve
python hide:
ui.transform(function=button_transform, xalign=0.5, yalign=0.5)
ui.textbutton(_("A Working Button"), clicked=ui.returns(True))
e "Finally, transforms can be applied to buttons, and work even while the button is zoomed."
show eileen happy
with dissolve
e "With a little Python code, transforms let you do a lot of things."
return
-478
View File
@@ -1,478 +0,0 @@
# This file demonstrates the built-in transitions which are defined in
# common/definitions.rpy, and also the new transitions given above.
init:
# Define some new transitions here.
$ slow_dissolve = Dissolve(1.0)
$ flashbulb = Fade(0.2, 0.0, 0.8, color='#fff')
# Imagedissolve Transitions.
$ circleirisout = ImageDissolve("id_circleiris.png", 1.0, 8)
$ circleirisin = ImageDissolve("id_circleiris.png", 1.0, 8, reverse=True)
$ circlewipe = ImageDissolve("id_circlewipe.png", 1.0, 8)
$ dream = ImageDissolve("id_dream.png", 2.0, 64)
$ teleport = ImageDissolve("id_teleport.png", 1.0, 0)
image bg circleiris = "id_circleiris.png"
image bg teleport = "id_teleport.png"
image alpha_control:
"spotlight.png"
xanchor .5
yanchor .5
parallel:
zoom 0
linear .5 zoom .75
pause 2
linear 1.0 zoom 4.0
parallel:
xpos 0.0 ypos .6
linear 1.5 xpos 1.0
linear 1.0 xpos .5 ypos .2
pause .5
repeat
define alpha_example = AlphaDissolve("alpha_control", delay=3.5)
label demo_transitions:
e "Ren'Py ships with a large number of built-in transitions, and also includes classes that let you define your own."
menu demo_transitions_menu:
e "What kind of transitions would you like demonstrated?"
"Simple Transitions":
call demo_simple_transitions from _call_demo_simple_transitions_1
"ImageDissolve Transitions":
call demo_imagedissolve_transitions from _call_demo_imagedissolve_transitions_1
"MoveTransition Transitions":
call demo_movetransition from _call_demo_movetransition_1
"CropMove Transitions":
call demo_cropmove_transitions from _call_demo_cropmove_transitions_1
"PushMove Transitions":
call demo_pushmove_transitions from _call_demo_pushmove_transitions_1
"AlphaDissolve Transitions":
call demo_alphadissolve from _call_demo_alphadissolve
""
"How about something else?":
return
jump demo_transitions_menu
label demo_simple_transitions:
e "Okay, I can tell you about simple transitions. We call them simple because they don't take much in the way of configuration."
e "But don't let that get you down, since they're the transitions you'll probably use the most in a game."
show bg whitehouse
with dissolve
e "The 'dissolve' transition is probably the most useful, blending one scene into another."
show bg washington
with slow_dissolve
e "The 'Dissolve' function lets you create your own dissolves, taking a different amount of time."
show bg whitehouse
with fade
e "The 'fade' transition fades to black, and then fades back in to the new scene."
e "If you're going to stay at a black screen, you'll probably want to use 'dissolve' rather than 'fade'."
with flashbulb
e "You can use 'Fade' to define your own fades. By changing the timing and the color faded to, you can use this for special effects, like flashbulbs."
show bg washington
with pixellate
e "The 'pixellate' transition pixellates out the old scene, switches to the new scene, and then unpixellates that."
e "It's probably not appropriate for most games, but we
think it's kind of neat."
e "You can use 'Pixellate' to change the details of the pixellation."
e "Motions can also be used as transitions."
"..."
"......"
$ renpy.play('punch.wav')
with vpunch
e "Hey! Pay attention."
e "I was about to demonstrate 'vpunch'... well, I guess I just did."
$ renpy.play('punch.wav')
with hpunch
e "We can also shake the screen horizontally, with 'hpunch'. These were defined using the 'Move' function."
e "There's also the 'move' transition, which is confusingly enough defined using the 'MoveTransition' function."
show eileen happy at right
with move
show eileen happy at center
with move
e "The 'move' transition finds images that have changed placement, and slides them to their new place. It's an easy way to get motion in your game."
e "Finally, there's 'Pause', which lets you define a transition that just waits for a given amount of time."
e "Why would you want to do that?"
e "It's because clicking during a sequence of transitions will skip all of the remaining transitions."
e "Try clicking during the following transitions:"
show bg whitehouse
with dissolve
with Pause(1)
show bg washington
with dissolve
e "Having 'Pause' makes it easy to implement skippable cut-scenes in terms of transitions."
e "Anyway, that's it for the simple transitions."
return
label demo_imagedissolve_transitions:
e "Perhaps the most flexible kind of transition is the ImageDissolve, which lets you use an image to control a dissolve."
e "This lets us specify very complex transitions, fairly simply. Let's try some, and then I'll show you how they work."
e "There are two ImageDissolve transitions built into Ren'Py."
scene black
with blinds
scene bg washington
show eileen happy
with blinds
e "The 'blinds' transition opens and closes what looks like vertical blinds."
scene black
with squares
scene bg washington
show eileen happy
with squares
e "The 'squares' transition uses these squares to show things."
e "I'm not sure why anyone would want to use it, but it was used in some translated games, so we added it."
e "The most interesting transitions aren't in the standard library."
e "These ones require an image the size of the screen, and so we couldn't include them as the size of the screen can change from game to game."
e "You can click the button above to see how they are defined in the demo script."
scene black
with circleirisin
e "We can hide things with a 'circleirisin'..."
scene bg washington
with circleirisout
e "... and show them again with a 'circleirisout'."
show bg whitehouse
with circlewipe
e "The 'circlewipe' transitions changes screens using a circular wipe effect."
scene bg washington
with dream
e "The 'dream' transition does this weird wavy dissolve, and does it relatively slowly."
show eileen happy
with teleport
e "The 'teleport' transition reveals the new scene one line at a time."
scene bg circleiris
with dissolve
e "This is the background picture used with the circleirisout transition."
e "When we use an ImageDissolve, the white will dissolve in first, followed by progressively darker colors. Let's try it."
show bg washington
with circleirisout
e "If we give ImageDissolve the 'reverse' parameter, black areas will dissolve in first."
show bg circleiris
with circleirisin
e "This lets circleirisin and circleirisout use the same image."
show bg teleport
with dissolve
e "The teleport transition uses a different image, one that dissolves things in one line at a time."
show bg washington
with teleport
e "A dissolve only seems to affect parts of the scene that have changed..."
show eileen happy
with teleport
e "... which is how we apply the teleport effect to a single character."
e "For more examples of ImageDissolve, check out the {i}Utsukushii Effects{/i} demo."
e "It shows how a clever game-maker can use ImageDissolve to create all sorts of effects."
return
label demo_cropmove_transitions:
e "The CropMove transition class provides a wide range of transition effects. It's not used very much in practice, though."
show eileen happy at offscreenleft
with move
e "I'll stand offscreen, so you can see some of its modes. I'll read out the mode name after each transition."
scene bg whitehouse
with wiperight
e "We first have wiperight..."
scene bg washington
with wipeleft
e "...followed by wipeleft... "
scene bg whitehouse
with wipeup
e "...wipeup..."
scene bg washington
with wipedown
e "...and wipedown."
e "Next, the slides."
scene bg whitehouse
with slideright
e "Slideright..."
scene bg washington
with slideleft
e "...slideleft..."
scene bg whitehouse
with slideup
e "...slideup..."
scene bg washington
with slidedown
e "and slidedown."
e "While the slide transitions slide in the new scene, the
slideaways slide out the old scene."
scene bg whitehouse
with slideawayright
e "Slideawayright..."
scene bg washington
with slideawayleft
e "...slideawayleft..."
scene bg whitehouse
with slideawayup
e "...slideawayup..."
scene bg washington
with slideawaydown
e "and slideawaydown."
e "We also have a couple of transitions that use a
rectangular iris."
scene bg whitehouse
with irisout
e "There's irisout..."
scene bg washington
show eileen happy
with irisin
e "... and irisin."
e "It's enough to make you feel a bit dizzy."
return
label demo_pushmove_transitions:
e "The PushMove transitions use the new scene to push the old one out. Let's take a look."
show bg whitehouse
hide eileen
with pushright
"There's pushright..."
show bg washington
with pushleft
"...pushleft..."
show bg whitehouse
with pushdown
"...pushdown..."
show bg washington
show eileen happy
with pushup
"... and pushup. And that's it the for the PushMove-based transitions."
return
label demo_movetransition:
e "The most common MoveTransition is move, which slides around images that have changed position on the screen."
show eileen happy at left
with move
e "Just like that."
e "There are also the moveout and movein transitions."
e "The moveout transitions (moveoutleft, moveoutright, moveouttop, and moveoutbottom) slide hidden images off the appropriate side of the screen."
e "The movein transitions (moveinleft, moveinright, moveintop, and moveinbottom) slide in new images."
e "Let's see them all in action."
hide eileen happy
with moveoutleft
show eileen happy
with moveinbottom
hide eileen happy
with moveoutbottom
show eileen happy
with moveinright
hide eileen happy
with moveoutright
show eileen flip
with moveintop
hide eileen flip
with moveouttop
show eileen happy
with moveinleft
e "That's it for the moveins and moveouts."
e "Finally, there are the zoomin and zoomout transtions, which show and hide things using a zoom."
hide eileen happy
with zoomout
show eileen happy
with zoomin
e "And that's all there is."
return
label demo_alphadissolve:
e "The AlphaDissolve transition lets you use one displayable to combine two others. For example..."
scene black
with dissolve
scene bg washington
show eileen happy at center
with alpha_example
e "The AlphaDissolve displayable takes a control displayable, usually an ATL transform."
scene
show alpha_control
e "To be useful, the control displayable should be partially transparent."
e "During an AlphaDissolve, the old screen is used to fill the transparent areas of the image, while the new screen fills the opaque areas."
scene black
e "For our spotlight example, the old screen is this all-black image."
scene bg washington
show eileen happy at center
e "The new screen is me just standing here."
scene black
with dissolve
scene bg washington
show eileen happy at center
with alpha_example
e "By combining them using AlphaDissolve, we can build a complicated effect out of simpler parts."
return
-331
View File
@@ -1,331 +0,0 @@
# This file contains a demonstration of the user interaction
# functions.
screen viewport_screen:
viewport:
scrollbars "both"
xmaximum 400
ymaximum 400
side_xpos 100
side_ypos 100
side_spacing 5
draggable True
mousewheel True
arrowkeys True
add "concert2"
textbutton _("Dismiss"):
xpos 300
xanchor 0.5
ypos 550
yanchor 0.5
action Return(True)
screen edgescroll_screen:
viewport:
edgescroll (150, 500)
add "concert2"
screen demo_imagemap:
imagemap:
auto "imagemap_%s.jpg"
hotspot (8, 200, 78, 78) action Return("swimming") alt "Swimming"
hotspot (204, 50, 78, 78) action Return("science") alt "Science"
hotspot (452, 79, 78, 78) action Return("art") alt "Art"
hotspot (602, 316, 78, 78) action Return("go home") alt "Go Home"
init:
# The variable we store the entered name of the character in.
$ povname = ""
# And this is a DynamicCharacter that has the same stored in
# povname.
$ pov = DynamicCharacter("povname", color=(192, 64, 64, 255))
# This is code for a day planner, or at least sort of. To be
# honest, the code in the dse game is a bit better. Take this
# as more of an example of what Ren'Py can do.
python:
def day_planner():
periods = [ _('Morning'), _('Afternoon'), _('Evening') ]
periods_small = {'Morning': _('morning'), 'Afternoon': _('afternoon'), 'Evening': _('evening') }
choices = [ _('Study'), _('Exercise'),
_('Eat'), _('Drink'), _('Be Merry') ]
plan = { _('Morning') : _('Eat'),
_('Afternoon') : _('Drink'),
_('Evening') : _('Be Merry') }
day = _('March 25th')
stats = [
(_('Strength'), 100, 10),
(_('Intelligence'), 100, 25),
(_('Moxie'), 100, 100),
(_('Chutzpah'), 100, 75),
]
editing = None
def button(text, selected, returns, **properties):
if selected:
role='selected_'
else:
role=''
ui.button(clicked=ui.returns(returns),
style='button', role=role, **properties)
ui.text(text, style='button_text')
while True:
# Stats Window
ui.frame(xpos=0,
ypos=0,
xanchor='left',
yanchor='top',
xfill=True,
)
ui.vbox()
ui.text(_('Statistics'))
ui.null(height=20)
for name, range, value in stats:
ui.hbox()
ui.text(name, minwidth=150)
ui.bar(range, value, ypos=0.5, yanchor='center')
ui.close()
ui.close()
# Period Selection Window.
ui.frame(xpos=0,
ypos=200,
xanchor='left',
yanchor='top',
xfill=False,
xminimum=300
)
ui.vbox(xpos=0.5, xanchor='center')
ui.text(day, xpos=0.5, xanchor='center', textalign=0.5)
ui.null(height=20)
for i in periods:
renpy.store.period_tmp = i
renpy.store.plan_tmp = plan[i]
button("[period_tmp!t]: [plan_tmp!t]", editing == i, ("edit", i), xminimum=250)
ui.null(height=20)
ui.textbutton(_("Continue"),
clicked=ui.returns(("done", True)),
xminimum=250)
ui.null(height=20)
ui.close()
# Choice window.
if editing:
ui.frame(xpos=300,
ypos=200,
xanchor='left',
yanchor='top',
xfill=False,
xminimum=500,
xmargin = 10
)
ui.vbox()
renpy.store.periods_small_selected = periods_small[editing]
ui.text(_("What will you do in the [periods_small_selected!t]?"))
ui.null(height=20)
for i in choices:
button(i,
plan[editing] == i,
("set", i),
xpos=0,
xanchor='left',
xminimum=250)
ui.close()
# Window at the bottom.
e(_("To get to the next screen, click the 'Continue' button."), interact=False)
type, value = ui.interact()
if type == "done":
break
if type == "edit":
editing = value
if type == "set":
plan[editing] = value
editing = None
return plan
init python:
def stats_frame(name, level, hp, maxhp, **properties):
ui.frame(xfill=False, yminimum=None, **properties)
ui.hbox() # (name, "HP", bar) from (level, hp, maxhp)
ui.vbox() # name from ("HP", bar)
ui.text(name, size=20)
ui.hbox() # "HP" from bar
ui.text("HP", size=20)
ui.bar(maxhp, hp,
xmaximum=150)
ui.close()
ui.close()
ui.vbox() # Level from (hp/maxhp)
ui.text("Lv. %d" % level, xalign=0.5, size=20)
ui.text("%d/%d" % (hp, maxhp), xalign=0.5, size=20)
ui.close()
ui.close()
label fight(ename, elevel, ehp, pname="Zanthier", plevel=4, php=40):
$ stats_frame(pname, plevel, int(php * .73), php, xalign=.02, yalign=.05)
$ stats_frame(ename, elevel, ehp, ehp, xalign=.98, yalign=.05)
return
label demo_ui:
e "Ren'Py gives a number of ways of interacting with the user."
e "You've already seen say statements and menus."
menu:
e "But were you aware that you can have dialogue and menus onscreen at the same time?"
"Yes.":
show eileen vhappy
e "Good!"
show eileen happy
"No.":
e "Well, now you know."
if not renpy.variant('touch'):
e "We can also prompt the user to enter some text."
$ povname = renpy.input(_("What is your name?")) or _("Guy Shy")
pov "My name is [povname!t]."
e "Imagemaps let the user click on an image to make a choice. For example, the following screen lets you pick what to do after school:"
# Show an imagemap.
window hide None
call screen demo_imagemap
window show None
# Call screen assignes the chosen result from the imagemap to the
# _return variable. We can use an if statement to vary what
# happens based on the user's choice.
if _return == "swimming":
e "You chose swimming."
e "Swimming seems like a lot of fun, but I didn't bring my bathing suit with me."
elif _return == "science":
e "You chose science."
e "I've heard that some schools have a competitive science team, but to me research is something that can't be rushed."
elif _return == "art":
e "You chose art."
e "Really good background art is hard to make, which is why so many games use filtered photographs. Maybe you can change that."
elif _return == "go home":
e "You chose to go home."
e "Anyway..."
e "We also support viewports, that allow us to display things that are bigger than the screen."
e "This viewport can be adjusted by dragging, by the mouse wheel, and by the scrollbars."
window hide
show eileen happy at right
with move
call screen viewport_screen
show screen edgescroll_screen
with dissolve
e "Viewports also support edge scrolling, which is automatic scrolling when the mouse reaches their edge."
hide screen edgescroll_screen
show eileen happy at center
with dissolve
window show
e "While these constructs are probably enough for most visual novels, dating simulations may be more complicated."
e "The ui functions allow you to create quite complicated interfaces."
e "For example, try the following scheduling and stats screen, which could be used by a stat-based dating simulation."
hide eileen
with dissolve
$ day_planner()
show eileen happy
with dissolve
e "For a better implementation of this, take a look at the dating sim engine (DSE) that ships with Ren'Py."
call fight("Eileen", 10, 99, pname=povname) from _call_fight_1
e "The ui functions can be also be used to show the sorts of stats you'd need if your game involves combat."
call fight("Eileen", 10, 99, pname=povname) from _call_fight_2
e "Hopefully, the ui functions will let you write whatever visual novel or dating sim you want."
return
-152
View File
@@ -1,152 +0,0 @@
# This file contains code for the menu that lets people select which demo
# they want to use. It uses quite a bit of the UI code, but it's probably
# a bit complex for the average user.
init:
python:
demos_main = [
("demo_basics", "Basic Scripting", "5.6.3"),
("demo_experience", "User Experience", "5.6.3"),
("demo_transitions", "Transitions", "5.6.6"),
("demo_movement", "Positions and Movement", "6.9.0"),
("demo_animation", "Animation", "6.2.0"),
("demo_multimedia", "Music, Sound, and Video", "6.9.1"),
("demo_imageops", "Image Operations", "6.5.0"),
("demo_ui", "User Interaction", "6.5.0"),
("demo_text", "Fonts and Text Tags", "6.8.0"),
("demo_character", "Character Objects", "6.2.0"),
("demo_advanced", "Advanced Features", "6.9.0"),
]
# Update above with this!
demos_advanced = [
("demo_layers", "Layers & Advanced Show", "5.6.5"),
("demo_nvlmode", "NVL Mode", "6.4.0"),
("demo_dynamic", "Dynamic Displayables", "5.6.3"),
("demo_minigame", "Minigames", "6.3.2"),
("demo_persistent", "Persistent Data", "6.7.0"),
("demo_transform", "Transform", "6.9.0"),
]
def demos_show(demos_info, nevermind):
renpy.choice_for_skipping()
ui.vbox(xpos=250, ypos=225, yanchor=0.5)
for label, name, ver in demos_info:
ui.button(style='button',
clicked=ui.returns(label),
xminimum=530,
left_padding=20)
ui.hbox()
ui.text(name, style='button_text', size=22, minwidth=440)
ui.text(ver, style='button_text', size=22)
ui.close()
ui.text(" ")
ui.button(style='button',
clicked=ui.returns(False),
xminimum=530,
left_padding=20)
ui.text(nevermind, style='button_text', size=22, minwidth=450)
ui.close()
rfd = renpy.roll_forward_info()
store.result = ui.interact(roll_forward=rfd)
renpy.checkpoint(store.result)
label demos:
# Is this the first time through the demo?
$ demo_first_time = True
show eileen happy at left
with move
label demo_repeat:
python hide:
if demo_first_time:
e("What would you like demonstrated?", interact=False)
else:
e("Is there anything else you'd like demonstrated?", interact=False)
store.demo_first_time = False
demos_show(demos_main, "That's enough for now.")
# If the result is False, then the user clicked the "Enough for
# now" button, and we should return to the main script.
if result == False:
show eileen happy at center
with move
return
# If the result is the advanced demo, just call it without
# re-setting up the screen.
elif result == "demo_advanced":
call demo_advanced from _call_demo_advanced_1
jump demo_repeat
else:
show eileen happy
with move
# Otherwise, we want to call the result.
call expression result from _call_result_1
show eileen happy at left
with move
# And then re-show this menu.
jump demo_repeat
# Presented without commentary, as it's basically a repeat of the above.
label demo_advanced:
# Hide the editor button.
$ show_editor_button = False
python hide:
e("Which advanced feature would you like to learn about?", interact=False)
demos_show(demos_advanced, "Nevermind.")
# Move eileen back to the center of the screen, unless we're going for
# an advanced demo.
# Show the editor button.
$ show_editor_button = True
# If the result is False, then the user clicked the "Enough for
# now" button, and we should return to the main script.
if result == False:
return
else:
show eileen happy
with move
# Otherwise, we want to call the result.
call expression result from _call_result_2
show eileen happy at left
with move
# And then re-show this menu.
jump demo_advanced
-56
View File
@@ -1,56 +0,0 @@
# This file contains code that's used to display the editor button,
# and the code that launches the editor with the given filename.
# This file can serve as an example of how to use an overlay, I guess.
init:
# This lets us control if the editor button is shown or not.
$ show_editor_button = False
python hide:
# This function is called at least one per interaction.
def overlay():
# If we don't want to show the editor button, do nothing.
if not show_editor_button:
return
# Figure out the filename and the line number.
import os.path
filename, line = renpy.get_filename_line()
filename = os.path.basename(filename)
# The function that is called when the button is clicked.
def clicked():
# We want to look for the filename in config.gamedir,
# rather then using the full filename given by
# get_filename_line. This is because the filename is fixed
# when the file is compiled, and so may have changed before
# the script is run. config.gamedir is computed when Ren'Py
# starts up, and so should always be right.
fullfn = config.gamedir + "/" + filename
# If the file exists, then we launch it in the editor, using
# the undocumented launch_editor function.
if os.path.exists(fullfn):
renpy.launch_editor([ fullfn ], line)
# Display the button, modifying its look so that it doesn't
# take up an excessive amount of space.
ui.button(clicked=clicked,
xpos=798, xanchor=1.0, ypos=2, xpadding=6, xminimum=200,
background=RoundRect((0, 60, 120, 255), 6),
hover_background=RoundRect((0, 80, 160, 255), 6),
)
# The button contains this text. We can't use ui.textbutton,
# since we want to restyle things.
ui.text("%s:%d" % (filename, line),
style="button_text",
size=14)
# Append the overlay function to the list of overlay functions.
config.overlay_functions.append(overlay)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

-169
View File
@@ -1,169 +0,0 @@
# This file is responsible for displaying code examples. It expects to see
# comments like #begin foo and #end foo a the start of lines. The code is
# then used to create example fragments.
#
# When we see:
#
# show example foo bar
#
# We concatenate fragements foo and bar, higlight them, wrap them into a
# viewport, button and transform, and display them to the user.
transform example_transform:
ypos 450 yanchor 1.0 xpos 0 xanchor 0
on replace:
crop (0, 0, 800, 120)
on show:
crop (0, 0, 800, 0)
linear .5 crop (0, 0, 800, 120)
on hide:
linear .5 crop (0, 0, 800, 0)
init python:
import re
import keywords
KEYWORDS = set(keywords.keywords)
PROPERTIES = set(keywords.properties)
KEYWORDS = [ re.escape(i) for i in keywords.keywords ]
PROPERTIES = [ re.escape(i) for i in keywords.properties ]
KWREGEX = r"|".join(KEYWORDS)
PRREGEX = r"|".join(PROPERTIES)
regex = r"(?P<word>\b(\$|\w+)\b)" + \
r"|(?P<string>\"([^\"]|\\.)*\")" + \
r"|(?P<comment>#.*)"
regex = re.compile(regex)
# This maps from example name to the text of the fragment.
examples = { }
class __Example(object):
"""
When parameterized, this displays an example window, containing
example text from blocks with those parameters.
"""
def colorize(self, m):
if m.group("string"):
return "{color=#060}" + m.group(0) + "{/color}"
word = m.group("word")
if word:
if word in KEYWORDS:
return "{color=#840}" + m.group(0) + "{/color}"
elif word in PROPERTIES:
return "{color=#048}" + m.group(0) + "{/color}"
else:
return m.group(0)
if m.group("comment"):
return "{color=#600}" + m.group(0) + "{/color}"
return m.group(0)
def predict(self, callback):
return
def _duplicate(self, args):
# Collect the examples we use.
lines1 = [ ]
for i in args.args:
if i not in examples:
raise Exception("Unknown example %r." % i)
lines1.extend(examples[i])
# Strip off doubled blank lines.
last_blank = False
lines = [ ]
for i in lines1:
if not i and last_blank:
continue
last_blank = not i
i = regex.sub(self.colorize, i)
lines.append(i)
# Join them into a single string.
code = "\n".join(lines) + "\n "
ct = Text(code, size=16, color="#000")
vp = Viewport(ct, child_size=(2000, 2000), ymaximum=120, draggable=True, mousewheel=True)
w = Window(vp,
background = "#fffc",
top_padding=0,
right_padding=0,
bottom_padding=0,
yminimum=0,
)
return example_transform(w)
image example = __Example()
init python hide:
import os.path
import re
# A list of files we will be scanning.
files = [ ]
for i in os.listdir(config.gamedir):
if i.endswith(".rpy"):
files.append(os.path.join(config.gamedir, i))
for fn in files:
f = file(fn, "r")
open_examples = set()
for l in f:
l = l.decode("utf-8")
l = l.rstrip()
m = re.match("\s*#begin (\w+)", l)
if m:
example = m.group(1)
if example in examples:
raise Exception("Example %r is defined in two places.", example)
open_examples.add(example)
examples[example] = [ ]
continue
m = re.match("\s*#end (\w+)", l)
if m:
example = m.group(1)
if example not in open_examples:
raise Exception("Example %r is not open.", example)
open_examples.remove(example)
continue
for i in open_examples:
examples[i].append(l)
if open_examples:
raise Exception("Examples %r remain open at the end of %r" % (open_examples, fn))
f.close()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

-400
View File
@@ -1,400 +0,0 @@
## This file contains some of the options that can be changed to customize
## your Ren'Py game. It only contains the most common options... there
## is quite a bit more customization you can do.
##
## Lines beginning with two '#' marks are comments, and you shouldn't
## uncomment them. Lines beginning with a single '#' mark are
## commented-out code, and you may want to uncomment them when
## appropriate.
init -1 python hide:
## Should we enable the use of developer tools? This should be
## set to False before the game is released, so the user can't
## cheat using developer tools.
config.developer = True
## These control the width and height of the screen.
config.screen_width = 800
config.screen_height = 600
## This controls the title of the window, when Ren'Py is
## running in a window.
config.window_title = u"The Ren'Py Tutorial Game"
# These control the name and version of the game, that are reported
# with tracebacks and other debugging logs.
config.name = "Ren'Py Tutorial"
config.version = '{}.{}.{} "{}"'.format(
renpy.renpy.version_tuple[0],
renpy.renpy.version_tuple[1],
renpy.renpy.version_tuple[2],
renpy.renpy.version_name)
## We then want to call a theme function. themes.roundrect is
## a theme that features the use of rounded rectangles. It's
## the only theme we currently support.
##
## The theme function takes a number of parameters that can
## customize the color scheme.
theme.roundrect(
## The color of an idle widget face.
widget = "#003c78",
## The color of a focused widget face.
widget_hover = "#0050a0",
## The color of the text in a widget.
widget_text = "#c8ffff",
## The color of the text in a selected widget. (For
## example, the current value of a preference.)
widget_selected = "#ffffc8",
## The color of a disabled widget face.
disabled = "#404040",
## The color of disabled widget text.
disabled_text = "#c8c8c8",
## The color of informational labels.
label = "#ffffff",
## The color of a frame containing widgets.
frame = "#6496c8",
## If this is True, the in-game window is rounded. If False,
## the in-game window is square.
rounded_window = False,
## The background of the main menu. This can be a color
## beginning with '#', or an image filename. The latter
## should take up the full height and width of the screen.
mm_root = "main_menu",
## The background of the game menu. This can be a color
## beginning with '#', or an image filename. The latter
## should take up the full height and width of the screen.
gm_root = "#dcebff",
## If True, buttons, frames, and windows will rounded using a
## 6px radius, rather then 12.
less_rounded = True,
## And we're done with the theme. The theme will customize
## various styles, so if we want to change them, we should
## do so below.
)
# For the demo, we use the nicer-looking bars from the outline
# theme.
theme.outline_bars(
inside="#8cf",
idle="#003c78",
hover="#0050a0")
#########################################
## These settings let you customize the window containing the
## dialogue and narration, by replacing it with an image.
## The background of the window. In a Frame, the four numbers are
## the size of the left, top, right, and bottom borders, respectively.
# style.window.background = Frame("frame.png", 8, 0, 8, 0)
## Margin is space surrounding the window, where the background
## is not drawn.
# style.window.left_margin = 6
# style.window.right_margin = 6
# style.window.top_margin = 6
# style.window.bottom_margin = 6
## Padding is space inside the window, where the background is
## drawn.
# style.window.left_padding = 6
# style.window.right_padding = 6
# style.window.top_padding = 6
# style.window.bottom_padding = 6
## This is the minimum height of the window, including the margins
## and padding.
# style.window.yminimum = 250
#########################################
## This lets you change the placement of the main menu.
## The way placement works is that we find an anchor point
## inside a displayable, and a position (pos) point on the
## screen. We then place the displayable so the two points are
## at the same place.
## An anchor/pos can be given as an integer or a floating point
## number. If an integer, the number is interpreted as a number
## of pixels from the upper-left corner. If a floating point,
## the number is interpreted as a fraction of the size of the
## displayable or screen.
# style.mm_menu_frame.xpos = 0.5
# style.mm_menu_frame.xanchor = 0.5
# style.mm_menu_frame.ypos = 0.75
# style.mm_menu_frame.yanchor = 0.5
#########################################
## These let you customize the default font used for text in Ren'Py.
## The file containing the default font.
# style.default.font = "DejaVuSans.ttf"
## The default size of text.
# style.default.size = 22
## Note that these only change the size of some of the text. Other
## buttons have their own styles.
#########################################
## These settings let you change some of the sounds that are used by
## Ren'Py.
## Set this to False if the game does not have any sound effects.
config.has_sound = True
## Set this to False if the game does not have any music.
config.has_music = True
## Set this to True if the game has voicing.
config.has_voice = False
## Sounds that are used when button and imagemaps are clicked.
style.button.activate_sound = "click.wav"
style.imagemap.activate_sound = "click.wav"
## Sounds that are used when entering and exiting the game menu.
config.enter_sound = "click.wav"
config.exit_sound = "click.wav"
## A sample sound that can be played to check the sound volume.
config.sample_sound = "tower_clock.ogg"
## Music that is played while the user is at the main menu.
# config.main_menu_music = "main_menu_theme.ogg"
#########################################
## Help.
## This lets you configure the help option on the Ren'Py menus.
## It may be:
## - A label in the script, in which case that label is called to
## show help to the user.
## - A file name relative to the base directory, which is opened in a
## web browser.
## - None, to disable help.
config.help = "README.html"
#########################################
## Transitions.
## Used when entering the game menu from the game.
config.enter_transition = dissolve
## Used when exiting the game menu to the game.
config.exit_transition = dissolve
## Used between screens of the game menu.
config.intra_transition = Dissolve(.25)
## Used when entering the game menu from the main menu.
config.main_game_transition = Dissolve(.25)
## Used when returning to the main menu from the game.
config.game_main_transition = Dissolve(.25)
## Used when entering the main menu from the splashscreen.
config.end_splash_transition = None
## Used when entering the main menu after the game has ended.
config.end_game_transition = fade
## Used when a game is loaded.
config.after_load_transition = dissolve
## Used when the window is shown.
config.window_show_transition = Dissolve(.25)
## Used when the window is hidden.
config.window_hide_transition = Dissolve(.25)
## Used when showing NVL-mode text directly after ADV-mode text.
config.adv_nvl_transition = dissolve
## Used when showing ADV-mode text directly after NVL-mode text.
config.nvl_adv_transition = dissolve
## Used when yesno is shown.
config.enter_yesno_transition = None
## Used when the yesno is hidden.
config.exit_yesno_transition = None
## Used when entering a replay
config.enter_replay_transition = None
## Used when exiting a replay
config.exit_replay_transition = None
## Used when the image is changed by a say statement with image attributes.
config.say_attribute_transition = None
#########################################
## This is the name of the directory where the game's data is
## stored. (It needs to be set early, before any other init code
## is run, so the persisten information can be found by the init code.)
python early:
config.save_directory = "tutorial-1"
init -1 python hide:
#########################################
## Default values of Preferences.
## Note: These options are only evaluated the first time a
## game is run. To have them run a second time, delete
## game/saves/persistent
## Should we start in fullscreen mode?
config.default_fullscreen = False
## The default text speed in characters per second. 0 is infinite.
config.default_text_cps = 0
config.window_icon = "logo.png"
config.windows_icon = "logo32.png"
# Set a default value for the auto-forward time, and note that AFM is
# turned off by default.
config.default_afm_time = 10
config.default_afm_enable = False
# This is the main menu image we use.
image main_menu:
contains:
"#000"
contains:
"concert2"
size (800, 509)
contains:
Text("Ren'Py " + config.version, size=18)
yalign .98
xalign .02
# Demo game specific customizations.
init python:
style.mm_menu_frame.yalign = .98
style.mm_menu_frame.xalign = .98
init python hide:
import os
launcher_language = os.environ.get("RENPY_LAUNCHER_LANGUAGE", "")
if launcher_language and launcher_language != persistent.launcher_language:
persistent.launcher_language = launcher_language
if launcher_language == "english" or (launcher_language not in renpy.known_languages()):
launcher_language = None
_preferences.language = launcher_language
## This section contains information about how to build your project into
## distribution files.
init python:
## The name that's used for directories and archive files. For example, if
## this is 'mygame-1.0', the windows distribution will be in the
## directory 'mygame-1.0-win', in the 'mygame-1.0-win.zip' file.
build.directory_name = "tutorial-1.0"
## The name that's uses for executables - the program that users will run
## to start the game. For example, if this is 'mygame', then on Windows,
## users can click 'mygame.exe' to start the game.
build.executable_name = "tutorial"
## If True, Ren'Py will include update information into packages. This
## allows the updater to run.
build.include_update = True
## File patterns:
##
## The following functions take file patterns. File patterns are case-
## insensitive, and matched against the path relative to the base
## directory, with and without a leading /. If multiple patterns match,
## the first is used.
##
##
## In a pattern:
##
## /
## Is the directory separator.
## *
## Matches all characters, except the directory separator.
## **
## Matches all characters, including the directory separator.
##
## For example:
##
## *.txt
## Matches txt files in the base directory.
## game/**.ogg
## Matches ogg files in the game directory or any of its subdirectories.
## **.psd
## Matches psd files anywhere in the project.
## Classify files as None to exclude them from the built distributions.
build.classify('**~', None)
build.classify('**.bak', None)
build.classify('**/.**', None)
build.classify('**/#**', None)
build.classify('**/thumbs.db', None)
## To archive files, classify them as 'archive'.
# build.classify('game/**.png', 'archive')
# build.classify('game/**.jpg', 'archive')
## Files matching documentation patterns are duplicated in a mac app
## build, so they appear in both the app and the zip file.
build.documentation('*.html')
build.documentation('*.txt')
# This is tutorial specific code that searches for fonts in
# launcher/fonts, reducing the size of the zip file containing
# the SDK.
config.searchpath.append("../launcher/game/fonts")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Some files were not shown because too many files have changed in this diff Show More