Working with Ren’Py:
- Part 1: Downloading and Configuring
- Part 2: Editing and Creating Characters
- Part 3: Scenes and Showing Images
- Part 4: Menus, Labels, and Jumps
- Part 5: Variables and Conditional Statements
- Part 6: Transitions
- Part 7: Building Distributions
Advanced Ren’Py:
- Part 1: Screen Language
- Part 2: Position Style Properties
- Part 3: Animation and Transformation Language
- Part 4: Text and Button
- Part 5: Bar and VBar
- Part 6: Textbutton and Imagebutton
- Part 7: Input, Key, and Mousearea
Customizing Ren’Py:
- Part 1: Editing options.rpy
- Part 2: Editing gui.rpy
- Part 3: Style Inspector and Overriding Styles
- Part 4: Special Screen Names and Overriding Screens
- Part 5: Replacing Default GUI Images
Ren’Py + Python:
- Part 1: Setting and Using Flags
- Part 2: Python Blocks
- Part 3: User-Defined Displayables
- Part 4: User-Defined Statements
- Part 5: Custom Text Tags
Ren’Py is a engine for creating visual novels. It comes with a suite of tools for taking code and transforming it into programs that can be run on Windows, Mac, Linux, and even, with a little more work, mobile platforms like Android and iOS.
Beyond the showing of text and images, Ren’Py can also be extended through introducing new user interface elements, changing its defaults images, and combining Python with its own code to create even more interactive projects.
Python Blocks
Beyond the use of the dollar sign for single, one-line statements in Python, Ren’Py also understands arbitrary collections of Python known as blocks.
Ren’Py has two common use cases:
- init python: Code to define functionality before a project script
- python: Arbitrary code potentially run during a project script
Initializing Python
Ren’Py understands the use of the keywords “init python” to be the start of Python statements that should be run before any of the Ren’Py code. Used to create functions and other settings, code in init python can be used to prepare for other code.
Ren’Py also expects, although does not enforce, that code placed in in these blocks will not change.
Note: The use of the define keyword used before the “start” label in Ren’Py is the same as using an init python statement.
Python
Arbitrary python code can be placed in a python block. This allows for writing more than single-statement lines with the dollar sign and performing potentially more complex operations.
As Ren’Py understands Python variables, they can be used directly in python blocks.
Example:
Functions can be defined an init python block and then referenced as part of a later python block.
Any variables used in Python or Ren’Py can be intermixed. They used to change their values in a python block and then to show the value to a player as part of Ren’Py dialogue statement.
GitHub Git Version:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
init python: | |
def plus(a,b): | |
return a + b | |
label start: | |
python: | |
result = plus(2,2) | |
result += 1 | |
"2 + 2 + 1 = [result]" | |
return |