Move images to subfolders next to each doc page
@@ -335,7 +335,7 @@ interface. They're used in the sources, in the documentation, and you
|
||||
should always use them instead of synonyms, so the users know what
|
||||
you're talking about.
|
||||
|
||||
.. figure:: /img/editor-vocabulary-overview.png
|
||||
.. figure:: img/editor-vocabulary-overview.png
|
||||
:alt: Overview of the interface and common vocabulary
|
||||
|
||||
Overview of the interface and common vocabulary
|
||||
|
||||
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
@@ -67,12 +67,12 @@ repository on GitHub. To do so, you will need to have a GitHub account and to
|
||||
be logged in. In the top right corner of the repository's GitHub page, you
|
||||
should see the "Fork" button as shown below:
|
||||
|
||||
.. image:: /img/github_fork_button.png
|
||||
.. image:: img/github_fork_button.png
|
||||
|
||||
Click it, and after a while you should be redirected to your own fork of the
|
||||
Godot repo, with your GitHub username as namespace:
|
||||
|
||||
.. image:: /img/github_fork_url.png
|
||||
.. image:: img/github_fork_url.png
|
||||
|
||||
You can then *clone* your fork, i.e. create a local copy of the online
|
||||
repository (in Git speak, the *origin remote*):
|
||||
@@ -287,7 +287,7 @@ When you load your fork's branch on GitHub, you should see a line saying
|
||||
commits behind, if your *master* branch was out of sync with the upstream
|
||||
*master* branch.
|
||||
|
||||
.. image:: /img/github_fork_make_pr.png
|
||||
.. image:: img/github_fork_make_pr.png
|
||||
|
||||
On that line, there is a "Pull request" link. Clicking it will open a form
|
||||
that will let you issue a pull request on the godotengine/godot upstream
|
||||
|
||||
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB |
@@ -21,7 +21,7 @@ resolved by analytical equation solve. So, it is an underconstrained
|
||||
problem, which means there is unlimited number of solutions to the
|
||||
equation.
|
||||
|
||||
.. image:: /img/inverse_kinematics.png
|
||||
.. image:: img/inverse_kinematics.png
|
||||
|
||||
For easy calculation, for this chapter we consider target is also
|
||||
child of Skeleton. If it is not the case for your setup you can always
|
||||
|
||||
@@ -37,15 +37,15 @@ The heightmap
|
||||
We will use a few functions of GIMP image editor to produce a simple
|
||||
heightmap. Start GIMP and create a square image of 512x512 pixels.
|
||||
|
||||
.. image:: /img/1_GIMP_createImage512.png
|
||||
.. image:: img/1_GIMP_createImage512.png
|
||||
|
||||
You are now in front of a new, blank, square image.
|
||||
|
||||
.. image:: /img/2_GIMP.png
|
||||
.. image:: img/2_GIMP.png
|
||||
|
||||
Then, use a filter to render some clouds on this new image.
|
||||
|
||||
.. image:: /img/3_GIMP_FilterRenderClouds.png
|
||||
.. image:: img/3_GIMP_FilterRenderClouds.png
|
||||
|
||||
Parameter this filter to whatever you want. A white pixel corresponds
|
||||
to the highest point of the heightmap, a black pixel corresponds to
|
||||
@@ -57,7 +57,7 @@ decent ground. A value of 4.0 or 5.0 for both is nice. Click on the
|
||||
"New Seed" button to roll a dice and GIMP will create a new random
|
||||
heightmap. Once you are happy with the result, click "OK".
|
||||
|
||||
.. image:: /img/4_GIMP_Clouds.png
|
||||
.. image:: img/4_GIMP_Clouds.png
|
||||
|
||||
You can continue to edit your image if you wish. For our example,
|
||||
let's keep the heightmap as is, and let's export it to a PNG file, say
|
||||
@@ -68,16 +68,16 @@ The plane mesh
|
||||
|
||||
Now, we will need a plane mesh to import in Godot. Let's run Blender.
|
||||
|
||||
.. image:: /img/5_Blender.png
|
||||
.. image:: img/5_Blender.png
|
||||
|
||||
Remove the start cube mesh, then add a new plane to the scene.
|
||||
|
||||
.. image:: /img/6_Blender_CreatePlane.png
|
||||
.. image:: img/6_Blender_CreatePlane.png
|
||||
|
||||
Zoom a bit, then switch to Edit mode (Tab key) and in the Tools
|
||||
buttongroup at the left, hit "Subdivide" 5 or 6 times.
|
||||
|
||||
.. image:: /img/7_Blender_subdivided.png
|
||||
.. image:: img/7_Blender_subdivided.png
|
||||
|
||||
Your mesh is now subdivided, which means we added vertices to the
|
||||
plane mesh that we will later be able to move. Job's not finished yet:
|
||||
@@ -92,16 +92,16 @@ Shading/UVs button group to the left, click the "Unwrap" button (or
|
||||
simply hit "U") and select "Smart UV Project". Keep the default
|
||||
options and hit "Ok".
|
||||
|
||||
.. image:: /img/8_Blender_UVSmart.png
|
||||
.. image:: img/8_Blender_UVSmart.png
|
||||
|
||||
Now, we need to switch our view to "UV/Image editor".
|
||||
|
||||
.. image:: /img/9_Blender_UV_editor.png
|
||||
.. image:: img/9_Blender_UV_editor.png
|
||||
|
||||
Select all the vertices again ("A") then in the UV menu, select
|
||||
"Export UV Layout".
|
||||
|
||||
.. image:: /img/10_Blender_exportUV.png
|
||||
.. image:: img/10_Blender_exportUV.png
|
||||
|
||||
Export the layout as a PNG file. Name it "plane.png" and save it in
|
||||
your Godot project folder. Now, let's export our mesh as an OBJ file.
|
||||
@@ -116,48 +116,48 @@ Let's now open Godot Editor.
|
||||
Create a new project in the folder you previously created and name it
|
||||
what you want.
|
||||
|
||||
.. image:: /img/11_Godot.png
|
||||
.. image:: img/11_Godot.png
|
||||
|
||||
In our default scene (3D), create a root node "Spatial". Next, import
|
||||
the mesh OBJ file. Click "Import", choose "3D Mesh" and select your
|
||||
plane.obj file, set the target path as "/" (or wherever you want in
|
||||
your project folder).
|
||||
|
||||
.. image:: /img/12_Godot_ImportMesh.png
|
||||
.. image:: img/12_Godot_ImportMesh.png
|
||||
|
||||
I like to check "Normals" in the import pop-up so the import will also
|
||||
consider faces normals, which can be useful (even if we don't use them
|
||||
in this tutorial). Your mesh is now displayed in the FileSystem in
|
||||
"res://".
|
||||
|
||||
.. image:: /img/13_Godot_ImportPopup.png
|
||||
.. image:: img/13_Godot_ImportPopup.png
|
||||
|
||||
Create a MeshInstance node. In the Inspector, load the mesh we just
|
||||
imported. Select "plane.msh" and hit ok.
|
||||
|
||||
.. image:: /img/14_Godot_LoadMesh.png
|
||||
.. image:: img/14_Godot_LoadMesh.png
|
||||
|
||||
Great! Our plane is now rendered in the 3D view.
|
||||
|
||||
.. image:: /img/15_Godot_MeshPlaneRendered.png
|
||||
.. image:: img/15_Godot_MeshPlaneRendered.png
|
||||
|
||||
It is time to add some shader stuff. In the Inspector, in the
|
||||
"Material Override" line, add a "New ShaderMaterial". Edit it by
|
||||
clicking the ">" button just right to it.
|
||||
|
||||
.. image:: /img/16_Godot_ShaderMaterial.png
|
||||
.. image:: img/16_Godot_ShaderMaterial.png
|
||||
|
||||
You have two ways to create a shader: by code (MaterialShader), or
|
||||
using a shader graph (MaterialShaderGraph). The second one is a bit
|
||||
more visual, but we will not cover it for now. Create a "New
|
||||
MaterialShader".
|
||||
|
||||
.. image:: /img/17_Godot_newMaterialShader.png
|
||||
.. image:: img/17_Godot_newMaterialShader.png
|
||||
|
||||
Edit it by clicking the ">" button just right to it. The Shaders
|
||||
editor opens.
|
||||
|
||||
.. image:: /img/18_Godot_ShaderEditorOpened.png
|
||||
.. image:: img/18_Godot_ShaderEditorOpened.png
|
||||
|
||||
The Vertex tab is for the Vertex shader, and the Fragment tab is for
|
||||
the Fragment shader. No need to explain what both of them do, right?
|
||||
@@ -191,7 +191,7 @@ outside the shader ("uniform"):
|
||||
However, the plane is displayed black! This is because we didn't set
|
||||
the texture file and the color to use.
|
||||
|
||||
.. image:: /img/19_Godot_BlackPlane.png
|
||||
.. image:: img/19_Godot_BlackPlane.png
|
||||
|
||||
In the Inspector, click the "Previous" button to get back to the
|
||||
ShaderMaterial. This is where you want to set the texture and the
|
||||
@@ -202,7 +202,7 @@ Fragment shader multiplies each pixel value of the texture by the
|
||||
(0,0,0), and as you know, 0\*x = 0 ;) . Just change the ``col``
|
||||
parameter to another color to see your texture appear:
|
||||
|
||||
.. image:: /img/20_Godot_TexturedPlane.png
|
||||
.. image:: img/20_Godot_TexturedPlane.png
|
||||
|
||||
Good. Now, the Vertex Shader.
|
||||
|
||||
@@ -249,4 +249,4 @@ That's all good, but our plane remains flat. This is because the
|
||||
``height_range`` value is 0. Increase this value to observe the mesh
|
||||
distort and take to form of the terrain we set before:
|
||||
|
||||
.. image:: /img/21_Godot_Fini.png
|
||||
.. image:: img/21_Godot_Fini.png
|
||||
|
||||
@@ -163,7 +163,7 @@ However, if you are writing your custom modules or custom C++ code, you
|
||||
might instead want to configure your APKs as custom export templates
|
||||
here:
|
||||
|
||||
.. image:: /img/andtemplates.png
|
||||
.. image:: img/andtemplates.png
|
||||
|
||||
You don't even need to copy them, you can just reference the resulting
|
||||
file in the ``bin\`` directory of your Godot source folder, so that the
|
||||
|
||||
@@ -423,7 +423,7 @@ However, if you are writing your custom modules or custom C++ code, you
|
||||
might instead want to configure your binaries as custom export templates
|
||||
here:
|
||||
|
||||
.. image:: /img/wintemplates.png
|
||||
.. image:: img/wintemplates.png
|
||||
|
||||
You don't even need to copy them, you can just reference the resulting
|
||||
files in the ``bin\`` directory of your Godot source folder, so the next
|
||||
|
||||
@@ -141,7 +141,7 @@ However, if you are writing your custom modules or custom C++ code, you
|
||||
might instead want to configure your binaries as custom export templates
|
||||
here:
|
||||
|
||||
.. image:: /img/lintemplates.png
|
||||
.. image:: img/lintemplates.png
|
||||
|
||||
You don't even need to copy them, you can just reference the resulting
|
||||
files in the bin/ directory of your Godot source folder, so the next
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -17,19 +17,19 @@ Or you may follow this text version tutorial.
|
||||
|
||||
Start by opening Kdevelop and choosing "open project".
|
||||
|
||||
.. image:: /img/kdevelop_newproject.png
|
||||
.. image:: img/kdevelop_newproject.png
|
||||
|
||||
Choose the directory where you cloned Godot.
|
||||
|
||||
.. image:: /img/kdevelop_openproject.png
|
||||
.. image:: img/kdevelop_openproject.png
|
||||
|
||||
For the build system, choose "custom build system".
|
||||
|
||||
.. image:: /img/kdevelop_custombuild.png
|
||||
.. image:: img/kdevelop_custombuild.png
|
||||
|
||||
Now that the project has been imported, open the project configuration.
|
||||
|
||||
.. image:: /img/kdevelop_openconfig.png
|
||||
.. image:: img/kdevelop_openconfig.png
|
||||
|
||||
Add the following includes/imports:
|
||||
|
||||
@@ -43,19 +43,19 @@ Add the following includes/imports:
|
||||
drivers/
|
||||
platform/x11/ // make that platform/osx/ is you're using OS X
|
||||
|
||||
.. image:: /img/kdevelop_addincludes.png
|
||||
.. image:: img/kdevelop_addincludes.png
|
||||
|
||||
Apply the changes then switch to the "Custom Buildsystem" tab.
|
||||
Leave the build directory blank. Enable build tools and add ``scons``
|
||||
as the executable and add ``platform=x11 target=debug`` (``platform=osx``
|
||||
if you're on OS X).
|
||||
|
||||
.. image:: /img/kdevelop_buildconfig.png
|
||||
.. image:: img/kdevelop_buildconfig.png
|
||||
|
||||
Next we need to tell KDevelop where to find the binary.
|
||||
From the "run" menu, choose "Configure Launches".
|
||||
|
||||
.. image:: /img/kdevelop_configlaunches.png
|
||||
.. image:: img/kdevelop_configlaunches.png
|
||||
|
||||
Click "Add new" if no launcher exists. Then add the path to your
|
||||
executable in the executable section. Your executable should be located
|
||||
@@ -63,7 +63,7 @@ in the ``bin/`` sub-directory and should be named something like
|
||||
``godot.x11.tools.64`` (the name could be different depending on your
|
||||
platform and depending on your build options).
|
||||
|
||||
.. image:: /img/kdevelop_configlaunches2.png
|
||||
.. image:: img/kdevelop_configlaunches2.png
|
||||
|
||||
That's it! Now you should be good to go :)
|
||||
|
||||
@@ -113,7 +113,7 @@ Project Setup
|
||||
|
||||
- Create an Xcode external build project anywhere
|
||||
|
||||
.. image:: /img/xcode_1_create_external_build_project.png
|
||||
.. image:: img/xcode_1_create_external_build_project.png
|
||||
|
||||
- Set the *Build tool* to the path to scons
|
||||
|
||||
@@ -123,15 +123,15 @@ Modify Build Target's Xcode Info Tab:
|
||||
- Set *Directory* to the path to Godot's source folder. Keep it blank if project is already there.
|
||||
- You may uncheck *Pass build settings in environment*
|
||||
|
||||
.. image:: /img/xcode_2_configure_scons.png
|
||||
.. image:: img/xcode_2_configure_scons.png
|
||||
|
||||
Add a Command Line Target:
|
||||
|
||||
- Go to Xcode File > New > Target... and add a new Xcode command line target
|
||||
|
||||
.. image:: /img/xcode_3_add_new_target.png
|
||||
.. image:: img/xcode_3_add_new_target.png
|
||||
|
||||
.. image:: /img/xcode_4_select_command_line_target.png
|
||||
.. image:: img/xcode_4_select_command_line_target.png
|
||||
|
||||
- Name it something so you know not to compile with this target
|
||||
- e.g. ``GodotXcodeIndex``
|
||||
@@ -145,12 +145,12 @@ Add Godot Source to the Project:
|
||||
- Drag and drop godot source into project file browser.
|
||||
- Uncheck *Create External Build System*
|
||||
|
||||
.. image:: /img/xcode_5_after_add_godot_source_to_project.png
|
||||
.. image:: img/xcode_5_after_add_godot_source_to_project.png
|
||||
|
||||
- Click Next
|
||||
- Select *create groups*
|
||||
|
||||
.. image:: /img/xcode_6_after_add_godot_source_to_project_2.png
|
||||
.. image:: img/xcode_6_after_add_godot_source_to_project_2.png
|
||||
|
||||
- Check off only your command line target in the *Add to targets* section
|
||||
- Click finish. Xcode will now index the files.
|
||||
@@ -167,7 +167,7 @@ Edit Build Scheme of External Build Target:
|
||||
- Goto *Post Actions*
|
||||
- Add a new script run action, select your project in ``Provide build settings from`` as this allows you to use ``${PROJECT_DIR}`` variable.
|
||||
|
||||
.. image:: /img/xcode_7_setup_build_post_action.png
|
||||
.. image:: img/xcode_7_setup_build_post_action.png
|
||||
|
||||
- Write a script that gives the binary a name that Xcode will recognize
|
||||
- e.g. ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/godot/bin/godot``
|
||||
@@ -178,7 +178,7 @@ Edit Run Scheme of External Build Target:
|
||||
- Open the scheme editor again
|
||||
- Click Run
|
||||
|
||||
.. image:: /img/xcode_8_setup_run_scheme.png
|
||||
.. image:: img/xcode_8_setup_run_scheme.png
|
||||
|
||||
- Set the *Executable* to the file you linked in your post build action script
|
||||
- Check *Debug executable* if it isn't already
|
||||
|
||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -4,26 +4,26 @@ Inheritance class tree
|
||||
Object
|
||||
------
|
||||
|
||||
.. image:: /img/Object.png
|
||||
.. image:: img/Object.png
|
||||
|
||||
Reference
|
||||
---------
|
||||
|
||||
.. image:: /img/Reference.png
|
||||
.. image:: img/Reference.png
|
||||
|
||||
Control
|
||||
-------
|
||||
|
||||
.. image:: /img/Control.png
|
||||
.. image:: img/Control.png
|
||||
|
||||
Node2D
|
||||
------
|
||||
|
||||
.. image:: /img/Node2D.png
|
||||
.. image:: img/Node2D.png
|
||||
|
||||
Spatial
|
||||
-------
|
||||
|
||||
.. image:: /img/Spatial.png
|
||||
.. image:: img/Spatial.png
|
||||
|
||||
Source files: :download:`class_tree.zip </files/class_tree.zip>`.
|
||||
|
||||
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 143 B |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -37,7 +37,7 @@ Plugins have a standard path like ``addons/plugin_name`` inside the project
|
||||
folder. So create the folder ``my_custom_node`` inside ``addons``. So you'll
|
||||
have a directory structure like this:
|
||||
|
||||
.. image:: /img/making_plugins-my_custom_mode_folder.png
|
||||
.. image:: img/making_plugins-my_custom_mode_folder.png
|
||||
|
||||
To make the ``plugin.cfg`` file, open your favorite text editor with a blank
|
||||
file. Godot is not able (yet) to open text files besides scripts, so this must
|
||||
@@ -125,7 +125,7 @@ That's it for our basic button. You can save this as ``button.gd`` inside the
|
||||
plugin folder. You'll also need a 16x16 icon to show in the scene tree. If you
|
||||
don't have one, you can grab the default one from the engine:
|
||||
|
||||
.. image:: /img/making_plugins-custom_node_icon.png
|
||||
.. image:: img/making_plugins-custom_node_icon.png
|
||||
|
||||
Now we need to add it as a custom type so it shows on the Create New Node
|
||||
dialog. For that, change the ``custom_node.gd`` script to the following::
|
||||
@@ -146,13 +146,13 @@ dialog. For that, change the ``custom_node.gd`` script to the following::
|
||||
With that done, the plugin should already be available in the plugin list at
|
||||
Project Settings. So activate it and try to add a new node to see the result:
|
||||
|
||||
.. image:: /img/making_plugins-custom_node_create.png
|
||||
.. image:: img/making_plugins-custom_node_create.png
|
||||
|
||||
When you add the node, you can see that it already have the script you created
|
||||
attached to it. Set a text to the button, save and run the scene. When you
|
||||
click the button, you can see a text in the console:
|
||||
|
||||
.. image:: /img/making_plugins-custom_node_console.png
|
||||
.. image:: img/making_plugins-custom_node_console.png
|
||||
|
||||
|
||||
A custom dock
|
||||
@@ -188,7 +188,7 @@ you can make a single button. The name of the root node will also be the name
|
||||
that appears on the dock tab, so be sure to put a descriptive but short one.
|
||||
Don't forget to add a text to your button.
|
||||
|
||||
.. image:: /img/making_plugins-my_custom_dock_scene.png
|
||||
.. image:: img/making_plugins-my_custom_dock_scene.png
|
||||
|
||||
Save this scene as ``my_dock.tscn``.
|
||||
|
||||
@@ -233,14 +233,14 @@ Settings* and click on the *Plugins* tab. Your plugin should be the only on
|
||||
the list. If it is not showing, click on the *Update* button at the top right
|
||||
corner.
|
||||
|
||||
.. image:: /img/making_plugins-project_settings.png
|
||||
.. image:: img/making_plugins-project_settings.png
|
||||
|
||||
At the *Status* column, you can see that the plugin is inactive. So you just
|
||||
need to click on the status to select *Active*. The dock should be immediately
|
||||
visible, even before you close the settings window. And now, lo and behold, you
|
||||
have a custom dock! In just a bit of coding and a simple scene.
|
||||
|
||||
.. image:: /img/making_plugins-custom_dock.png
|
||||
.. image:: img/making_plugins-custom_dock.png
|
||||
|
||||
Going beyond
|
||||
~~~~~~~~~~~~
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
2D viewport
|
||||
-----------
|
||||
|
||||
.. image:: /img/keybinds_2d.png
|
||||
.. image:: img/keybinds_2d.png
|
||||
|
||||
3D viewport
|
||||
-----------
|
||||
|
||||
.. image:: /img/keybinds_3d.png
|
||||
.. image:: img/keybinds_3d.png
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -47,8 +47,8 @@ The editor
|
||||
|
||||
Godot Engine provides a rich-featured editor that allows you to build your games. The pictures below display both editors with colored blocks to indicate common functionalities.
|
||||
|
||||
.. image:: /img/unity-gui-overlay.png
|
||||
.. image:: /img/godot-gui-overlay.png
|
||||
.. image:: img/unity-gui-overlay.png
|
||||
.. image:: img/godot-gui-overlay.png
|
||||
|
||||
|
||||
Note that Godot editor allows you to dock each panel at the side of the scene editor you wish.
|
||||
@@ -120,7 +120,7 @@ These are the most important concepts you need to remember: "node", "parent node
|
||||
Project organization
|
||||
--------------------
|
||||
|
||||
.. image:: /img/unity-project-organization-example.png
|
||||
.. image:: img/unity-project-organization-example.png
|
||||
|
||||
We previously observed that there is no perfect solution to set a project architecture. Any solution will work for Unity and Godot, so this point has a lesser importance.
|
||||
|
||||
@@ -136,11 +136,11 @@ The concept of prefabs as provided by Unity is a 'template' element of the scene
|
||||
|
||||
Godot does not provide prefabs as such, but this functionality is here again filled thanks to its scene system: as we saw the scene system is organized as a tree. Godot allows you to save a subtree of a scene as its own scene, thus saved in its own file. This new scene can then be instanced as many times as you want. Any change you make to this new, separate scene will be applied to its instances. However, any change you make to the instance will not have any impact on the 'template' scene.
|
||||
|
||||
.. image:: /img/save-branch-as-scene.png
|
||||
.. image:: img/save-branch-as-scene.png
|
||||
|
||||
To be precise, you can modify the parameters of the instance in the Inspector panel. However, the nodes that compose this instance are locked and you can unlock them if you need to by clicking the clapperboard icon next to the instance in the Scene tree, and select "Editable children" in the menu. You don't need to do this to add new children nodes to this node, but remember that these new children will belong to the instance, not the 'template' scene. If you want to add new children to all the instances of your 'template' scene, then you need to add it once in the 'template' scene.
|
||||
|
||||
.. image:: /img/editable-children.png
|
||||
.. image:: img/editable-children.png
|
||||
|
||||
Glossary correspondence
|
||||
-----------------------
|
||||
|
||||
@@ -53,7 +53,7 @@ Transform order
|
||||
For a coordinate in CanvasItem local properties to become an actual
|
||||
screen coordinate, the following chain of transforms must be applied:
|
||||
|
||||
.. image:: /img/viewport_transforms2.png
|
||||
.. image:: img/viewport_transforms2.png
|
||||
|
||||
Transform functions
|
||||
-------------------
|
||||
|
||||
@@ -61,7 +61,7 @@ counter and pause button can also be created at layer "1".
|
||||
|
||||
Here's a diagram of how it looks:
|
||||
|
||||
.. image:: /img/canvaslayers.png
|
||||
.. image:: img/canvaslayers.png
|
||||
|
||||
CanvasLayers are independent of tree order, and they only depend on
|
||||
their layer number, so they can be instantiated when needed.
|
||||
|
||||
@@ -148,7 +148,7 @@ We now have a function that draws stuff on the screen: it is time to call in the
|
||||
|
||||
Result:
|
||||
|
||||
.. image:: /img/result_drawarc.png
|
||||
.. image:: img/result_drawarc.png
|
||||
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ We can take this a step further and not only write a function that draws the pla
|
||||
draw_polygon(points_arc, colors)
|
||||
|
||||
|
||||
.. image:: /img/result_drawarc_poly.png
|
||||
.. image:: img/result_drawarc_poly.png
|
||||
|
||||
Dynamic custom drawing
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 281 KiB |
|
Before Width: | Height: | Size: 342 KiB After Width: | Height: | Size: 342 KiB |
|
Before Width: | Height: | Size: 350 KiB After Width: | Height: | Size: 350 KiB |
|
Before Width: | Height: | Size: 405 KiB After Width: | Height: | Size: 405 KiB |
|
Before Width: | Height: | Size: 372 KiB After Width: | Height: | Size: 372 KiB |
|
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 641 KiB After Width: | Height: | Size: 641 KiB |
|
Before Width: | Height: | Size: 438 KiB After Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 587 KiB After Width: | Height: | Size: 587 KiB |
|
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 747 KiB After Width: | Height: | Size: 747 KiB |
|
Before Width: | Height: | Size: 743 KiB After Width: | Height: | Size: 743 KiB |
|
Before Width: | Height: | Size: 564 KiB After Width: | Height: | Size: 564 KiB |
|
Before Width: | Height: | Size: 351 KiB After Width: | Height: | Size: 351 KiB |
|
Before Width: | Height: | Size: 335 KiB After Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 252 KiB |
|
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 293 KiB |