# Godot Engine Documentation in Hebrew # Copyright (C) 2014-2020, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) # This file is distributed under the same license as the Godot Engine package. # # Daniel , 2018. # Daniel Dovgun , 2019. # Ido Dana , 2019. # RaikaRakka , 2018. # shai sinai , 2019. # Yaron Shahrabani , 2018-2019. # יובל הרמן , 2019. # msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" "POT-Creation-Date: 2020-06-22 14:46+0200\n" "PO-Revision-Date: 2019-09-07 13:53+0000\n" "Last-Translator: Ido Dana \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" "X-Generator: Weblate 3.9-dev\n" #: ../../docs/index.rst:2 #, fuzzy msgid "Godot Docs – *3.2* branch" msgstr "תיעוד גודוט - ענף ראשי" #: ../../docs/index.rst:6 msgid "" "Godot's documentation is available in various languages and versions. Expand " "the \"Read the Docs\" panel at the bottom of the sidebar to see the list." msgstr "" "ניתן להשתמש בתיעוד בכמה שפות וגרסאות שונות. ניתן להחליף בין הגרסאות בפאנל " "הימני למטה." #: ../../docs/index.rst:10 #, fuzzy msgid "" "This is the documentation for the stable 3.2 branch. Looking for the " "documentation of the current **development** branch? `Have a look here " "`_. You can also browse the " "documentation for the previous stable `3.1 `_ branch." msgstr "" "זה התיעוד לענף הפיתוח. כדי לעבור לתיעוד לענף הנוכחי **יציב** `לחץ כאן " "`_." #: ../../docs/index.rst:18 msgid "" "This documentation is translated from the `original English one `_ by community members on `Weblate `_." msgstr "" "תיעוד זה תורגם מהשפה המקורית באנגלית < https://docs.godotengine.org/en/" "latest >'_ על ידי חברי הקהילה באתר _ 'Weblate < https://hosted.weblate.org/" "projects/godot-engine/godot-docs >'." #: ../../docs/index.rst:22 msgid "" "Depending on the translation effort's completion level, you may find " "paragraphs or whole pages which are still in English. You can help the " "community by providing new translations or reviewing existing ones on " "Weblate." msgstr "" "בהתאם לרמת המאמץ בתרגום, אתה עשוי לגלות פסקאות דפים שלמים שלא תורגמו ויופיעו " "באנגלית. באפשרותך לסייע לקהילה באמצעות מתן תרגומים חדשים או בדיקה של תרגומים " "קיימים ב- Weblate." #: ../../docs/index.rst:27 msgid "" "For the time being, localized translations are only available for the " "\"latest\" (development) branch, but should be suitable to learn how to use " "stable Godot releases nevertheless." msgstr "" "לעת עתה, תרגומים לשפות אחרות זמינות רק עבור ענף הפיתוח \"עדכני\" (פיתוח), " "אבל צריכים להתאים לגרסאות גודוט יציב בכל זאת." #: ../../docs/index.rst:31 #, fuzzy msgid "" "Welcome to the official documentation of `Godot Engine `__, the free and open source community-driven 2D and 3D game engine! If " "you are new to this documentation, we recommend that you read the :ref:" "`introduction page ` to get an overview of what this " "documentation has to offer." msgstr "" "ברוך הבא למסמך הרשמי של מנוע גודוט, מנוע המשחקים הדו ותלת מימדי החינמי ובקוד " "פתוח שמונע ע\"י הקהילה. אם המסמך חדש עבורך, אנחנו ממליצים שתקרא את :ref:` דף " "ההיכרות ` כדי להבין מה המסמך הנ\"ל יכול להציע." #: ../../docs/index.rst:37 msgid "" "The table of contents below and in the sidebar should let you easily access " "the documentation for your topic of interest. You can also use the search " "function in the top left corner." msgstr "" "תוכן העניינים למטה ובצד יכול לאפשר לך לגשת בקלות לתיעוד בנושא שבו הנך " "מעוניין. אתה גם יכול להשתמש בחיפוש בפינה השמאלית העליונה." #: ../../docs/index.rst:41 msgid "" "Godot Engine is an open source project developed by a community of " "volunteers. The documentation team can always use your feedback and help to " "improve the tutorials and class reference. If you don't understand " "something, or cannot find what you are looking for in the docs, help us make " "the documentation better by letting us know!" msgstr "" "מנוע גודוט הוא פרוייקט בקוד פתוח שמפותח ע\"י קהילה של מתנדבים. צוות התיעוד " "תמיד יכול להעזר במשוב שלך כדי לשפר את המדריכים ואת ההפניות למחלקות. אם אינך " "מבין משהו, או שאינך יכול למצוא משהו שאתה מחפש במסמכים, תן לנו לדעת ועזור לנו " "לשפר את התיעוד!" #: ../../docs/index.rst:48 msgid "" "Submit an issue or pull request on the `GitHub repository `_, help us `translate the documentation " "`_ into your language, or " "talk to us on either the ``#documentation`` channel on `Discord `_, or the ``#godotengine-doc`` channel on `irc.freenode." "net `_!" msgstr "" "ניתן להגיש pull request או לפתוח תקלה ב`מאגר ב־GitHub `_, ניתן לסייע לנו `לתרגם את התיעוד `_ לשפה שלך או לפנות אלינו דרך הערוץ " "``‎#documentation`` ב־ `Discord `_, או בערוץ " "``‎#godotengine-doc`` תחת `irc.freenode.net `_!" #: ../../docs/index.rst:58 msgid "weblate_widget" msgstr "" #: ../../docs/index.rst:59 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "התיעוד העיקרי בשביל האתר מסודר לפי הסעיפים הבאים:" #: ../../docs/index.rst:61 msgid "General" msgstr "כללי" #: ../../docs/index.rst:69 #: ../../docs/tutorials/platform/android_in_app_purchases.rst:35 #: ../../docs/tutorials/platform/android_in_app_purchases.rst:44 msgid "Getting started" msgstr "מתחילים" #: ../../docs/index.rst:80 msgid "Tutorials" msgstr "מדריכים" #: ../../docs/index.rst:110 msgid "Development" msgstr "פיתוח" #: ../../docs/index.rst:121 msgid "Community" msgstr "קהילה" #: ../../docs/index.rst:131 msgid "Class reference" msgstr "" #: ../../docs/about/index.rst:2 #: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:7 #: ../../docs/tutorials/inputs/mouse_and_input_coordinates.rst:7 #: ../../docs/development/cpp/variant_class.rst:7 msgid "About" msgstr "על" #: ../../docs/about/introduction.rst:4 #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:7 #: ../../docs/getting_started/step_by_step/instancing.rst:7 #: ../../docs/getting_started/step_by_step/scripting.rst:7 #: ../../docs/getting_started/step_by_step/signals.rst:10 #: ../../docs/getting_started/step_by_step/animations.rst:7 #: ../../docs/getting_started/step_by_step/filesystem.rst:7 #: ../../docs/getting_started/step_by_step/scene_tree.rst:7 #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:7 #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:7 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:7 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:7 #: ../../docs/getting_started/workflow/project_setup/version_control_systems.rst:7 #: ../../docs/getting_started/workflow/export/feature_tags.rst:7 #: ../../docs/getting_started/workflow/best_practices/introduction_best_practices.rst:4 #: ../../docs/tutorials/2d/2d_transforms.rst:7 #: ../../docs/tutorials/2d/using_tilemaps.rst:7 #: ../../docs/tutorials/2d/2d_movement.rst:7 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:7 #: ../../docs/tutorials/2d/2d_meshes.rst:7 #: ../../docs/tutorials/2d/2d_sprite_animation.rst:7 #: ../../docs/tutorials/3d/using_transforms.rst:7 #: ../../docs/tutorials/3d/optimizing_3d_performance.rst:10 #: ../../docs/tutorials/3d/3d_rendering_limitations.rst:7 #: ../../docs/tutorials/3d/spatial_material.rst:7 #: ../../docs/tutorials/3d/lights_and_shadows.rst:7 #: ../../docs/tutorials/3d/reflection_probes.rst:7 #: ../../docs/tutorials/3d/gi_probes.rst:7 #: ../../docs/tutorials/3d/baked_lightmaps.rst:7 #: ../../docs/tutorials/3d/high_dynamic_range.rst:7 #: ../../docs/tutorials/3d/using_gridmaps.rst:7 #: ../../docs/tutorials/3d/using_multi_mesh_instance.rst:7 #: ../../docs/tutorials/audio/audio_buses.rst:7 #: ../../docs/tutorials/audio/audio_streams.rst:7 #: ../../docs/tutorials/audio/sync_with_audio.rst:7 #: ../../docs/tutorials/physics/using_area_2d.rst:7 #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:7 #: ../../docs/tutorials/physics/ray-casting.rst:7 #: ../../docs/tutorials/physics/ragdoll_system.rst:7 #: ../../docs/tutorials/physics/kinematic_character_2d.rst:7 #: ../../docs/tutorials/math/vector_math.rst:7 #: ../../docs/tutorials/math/matrices_and_transforms.rst:7 #: ../../docs/tutorials/animation/2d_skeletons.rst:7 #: ../../docs/tutorials/animation/animation_tree.rst:7 #: ../../docs/tutorials/inputs/input_examples.rst:7 #: ../../docs/tutorials/io/saving_games.rst:7 #: ../../docs/tutorials/i18n/internationalizing_games.rst:7 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:7 #: ../../docs/tutorials/viewports/viewports.rst:7 #: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:7 #: ../../docs/tutorials/viewports/custom_postprocessing.rst:7 #: ../../docs/tutorials/shading/shading_reference/shaders.rst:7 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:7 #: ../../docs/tutorials/shading/your_first_shader/what_are_shaders.rst:7 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:7 #: ../../docs/tutorials/shading/shader_materials.rst:7 #: ../../docs/tutorials/shading/screen-reading_shaders.rst:7 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:7 #: ../../docs/tutorials/shading/advanced_postprocessing.rst:7 #: ../../docs/tutorials/networking/ssl_certificates.rst:7 #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:7 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_one.rst:7 #: ../../docs/tutorials/vr/vr_starter_tutorial/vr_starter_tutorial_part_two.rst:7 #: ../../docs/tutorials/vr/developing_for_oculus_quest.rst:7 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:11 #: ../../docs/tutorials/plugins/editor/spatial_gizmos.rst:7 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:7 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:7 #: ../../docs/tutorials/plugins/android/android_plugin.rst:7 #: ../../docs/tutorials/misc/binary_serialization_api.rst:7 #: ../../docs/tutorials/misc/state_design_pattern.rst:7 #: ../../docs/development/cpp/custom_resource_format_loaders.rst:7 #: ../../docs/development/cpp/custom_audiostreams.rst:7 #: ../../docs/development/cpp/custom_godot_servers.rst:7 #: ../../docs/development/editor/editor_style_guide.rst:7 #: ../../docs/community/contributing/best_practices_for_engine_contributors.rst:7 msgid "Introduction" msgstr "מבוא" #: ../../docs/about/introduction.rst:11 msgid "" "Welcome to the official documentation of Godot Engine, the free and open " "source community-driven 2D and 3D game engine! Behind this mouthful, you " "will find a powerful yet user-friendly tool that you can use to develop any " "kind of game, for any platform and with no usage restriction whatsoever." msgstr "" "ברוכים הבאים לתיעוד הרשמי של מנוע גודוט ( Godot Engine ), מנוע המשחק הדו " "מימדי ותלת מימדי, בעל קוד פתוח, חינמי, ומפותח על ידי הקהילה!\n" "מאחורי המשפט הארוך הזה, אתם תמצאו כלי חזק אך ידידותי למשמתש שתוכלו להשתמש " "לפיתוח כל סוג של משחק, לכל סוג של פלטפורמה, וללא מגבלת שימוש כלשהיא." #: ../../docs/about/introduction.rst:16 msgid "" "This page gives a broad presentation of the engine and of the contents of " "this documentation, so that you know where to start if you are a beginner or " "where to look if you need info on a specific feature." msgstr "" "מטרת דף זה היא לתת הצגה רחבה על המנוע, ועל תוכן מסמך זה, כך שתוכל לדעת מאיפה " "להתחיל אם אתה מתחיל או איפה להסתכל אם אתה צריך מידע נוסף בנוגע למאפיין " "מסויים." #: ../../docs/about/introduction.rst:21 msgid "Before you start" msgstr "" #: ../../docs/about/introduction.rst:23 msgid "" "The :ref:`Tutorials and resources ` page lists " "video tutorials contributed by the community. If you prefer video to text, " "those may be worth a look." msgstr "" #: ../../docs/about/introduction.rst:27 msgid "" "In case you have trouble with one of the tutorials or your project, you can " "find help on the various :ref:`Community channels `, " "especially the Godot Discord community, Q&A, and IRC." msgstr "" #: ../../docs/about/introduction.rst:32 msgid "About Godot Engine" msgstr "על אודות המנוע Godot" #: ../../docs/about/introduction.rst:34 msgid "" "A game engine is a complex tool, and it is therefore difficult to present " "Godot in a few words. Here's a quick synopsis, which you are free to reuse " "if you need a quick writeup about Godot Engine." msgstr "" "מנוע משחק הינו כלי מורכב, ולכן זה מסובך להציג את Godot במספר מילים. הנה הצגה " "של היחצן שלנו, שהינכם חופשים להשתמש אם אתם צריכים לכתוב בקצרה על המנוע Godot." #: ../../docs/about/introduction.rst:38 msgid "" "Godot Engine is a feature-packed, cross-platform game engine to create 2D " "and 3D games from a unified interface. It provides a comprehensive set of " "common tools, so users can focus on making games without having to reinvent " "the wheel. Games can be exported in one click to a number of platforms, " "including the major desktop platforms (Linux, macOS, Windows) as well as " "mobile (Android, iOS) and web-based (HTML5) platforms." msgstr "" "המנוע גודוט הוא מנוע משחק בעל תוכן רב ורחב פלטפורמות שמאפשר ליצור משחקי דו " "מימד ותלת מימד בממשק אחיד. המנוע מספק אוסף מקיף של כלים נפוצים, כך שהמשתמשים " "יכלו להתמקד על יצירת משחקים מבלי להמציא את הגלגל מחדש. המשחקים יכולים לייצא " "למספר פלטפורמות בלחיצת כפתור, כגון לפלטפורמות שולחן העבודה הנפוצות (Linux, " "macOS, Windows), למובייל (Android, iOS) וגם לפלטפורמות מבוססות דפדפן (HTML5)." #: ../../docs/about/introduction.rst:45 msgid "" "Godot is completely free and open source under the permissive MIT license. " "No strings attached, no royalties, nothing. Users' games are theirs, down to " "the last line of engine code. Godot's development is fully independent and " "community-driven, empowering users to help shape their engine to match their " "expectations. It is supported by the `Software Freedom Conservancy `_ not-for-profit." msgstr "" "גודוט הוא לגמרי בחינם ובעל קוד פתוח תחת רישיון MIT שמאוד מרשה. ללא תנאים, " "ללא תמלוגים, כלום. המשחקים של המשתמשים הם שלהם, עד השורה האחרונה של קוד " "המנוע. הפיתוח של גודוט הוא עצמאי לחלוטין ומונע על ידי הקהילה, במטרה לתמוך " "במתשתמשים לעצב את המנוע שלהם לפי הציפיות שלהם. גודוט נתמך על ידי 'Software " "Freedom Conservancy ' ללא כוונת רווח." #: ../../docs/about/introduction.rst:52 msgid "" "For a more in-depth view of the engine, you are encouraged to read this " "documentation further, especially the :ref:`Step by step ` tutorial." msgstr "" "בשביל יותר מידע על המנוע, אתם מוזמנים לקרוא את התיעוד האלה, במיוחד את המדריך " "'צעד אחר צעד'." #: ../../docs/about/introduction.rst:57 msgid "About the documentation" msgstr "על אודות התיעוד" #: ../../docs/about/introduction.rst:59 msgid "" "This documentation is continuously written, corrected, edited, and revamped " "by members of the Godot Engine community. It is edited via text files in the " "`reStructuredText `_ markup " "language and then compiled into a static website/offline document using the " "open source `Sphinx `_ and `ReadTheDocs `_ tools." msgstr "" "מסמך זה כל הזמן נכתב, מתוקן, נערך ומתחדש על ידי חברים בקהילת המנוע גודוט. " "התיעוד נערך על ידי קבצי טקסט בשפת Markup `reStructuredText `_ ואז עובר קימפול לאתר סטטי/מסמך לא " "מקוון בעזרת הכלים קוד-פתוח חינמיים `Sphinx `_ ו- " "`ReadTheDocs `_ ." #: ../../docs/about/introduction.rst:66 #, fuzzy msgid "" "You can contribute to Godot's documentation by opening issue tickets or " "sending patches via pull requests on its GitHub `source repository `_, or translating it into your language " "on `Hosted Weblate `_." msgstr "" "אתם יכולים לתרום למסמך של גודוט על ידי פתיחת דוחות בעיה, או שליחת תיקונים " "בעזרת בקשות משיכה בGitHub של גודוט `source repository `_, או שאתם יכולים לערוך את המסמך לשפה שלכם `Hosted " "Weblate `_." #: ../../docs/about/introduction.rst:72 msgid "" "All the contents are under the permissive Creative Commons Attribution 3.0 " "(`CC-BY 3.0 `_) license, with " "attribution to \"Juan Linietsky, Ariel Manzur and the Godot Engine community" "\"." msgstr "" "כל התוכן תחת הרישיון המרשה (`CC-BY 3.0 `_)Creative Commons Attribution 3.0, ועם יחוס ל\"Juan " "Linietsky, Ariel Manzur and the Godot Engine community\"." #: ../../docs/about/introduction.rst:77 msgid "Organization of the documentation" msgstr "סדר התיעוד" #: ../../docs/about/introduction.rst:79 #, fuzzy msgid "" "This documentation is organized in five sections with an impressively " "unbalanced distribution of contents – but the way it is split up should be " "relatively intuitive:" msgstr "" "התיעוד מוסדר לפי חמישה חלקים עם חלוקה לא מאוזנת מרשימה של התוכן - אבל הדרך " "זה מחלוק אמור להיות יחסית אינטואיטיבי:" #: ../../docs/about/introduction.rst:83 msgid "" "The :ref:`sec-general` section contains this introduction as well as " "information about the engine, its history, its licensing, authors, etc. It " "also contains the :ref:`doc_faq`." msgstr "" "פרק :ref:`sec-general` מכיל את המבוא וכן את המידע על המנוע, על ההיסטוריה " "שלו, על הרשאותיו, על מחבריו ועוד. כמו כן מכיל המבוא את :ref:`doc_faq`." #: ../../docs/about/introduction.rst:86 msgid "" "The :ref:`sec-learn` section is the *raison d'être* of this documentation, " "as it contains all the necessary information on using the engine to make " "games. It starts with the :ref:`Step by step ` " "tutorial which should be the entry point for all new users." msgstr "" #: ../../docs/about/introduction.rst:91 #, fuzzy msgid "" "The :ref:`sec-tutorials` section can be read as needed, in any order. It " "contains feature-specific tutorials and documentation." msgstr "" "את הסעיף :ref:`sec-tutorials`, מצד שני, ניתן לקרוא במקרה הצורך בכל סדר שהוא. " "הסעיף מכיל הרבה מדריכים ותיעוד למאפיינים מסוימים." #: ../../docs/about/introduction.rst:93 msgid "" "The :ref:`sec-devel` section is intended for advanced users and contributors " "to the engine development, with information on compiling the engine, " "developing C++ modules or editor plugins." msgstr "" "הסעיף :ref:`sec-devel` מיועד למשתמשים מתקדמים ולתורמים לפיתוח המנוע, עם מידע " "על הידור המנוע, פיתוח מודולי C++‎ או תוספים לעורך." #: ../../docs/about/introduction.rst:96 msgid "" "The :ref:`sec-community` section gives information related to contributing " "to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." msgstr "" #: ../../docs/about/introduction.rst:101 msgid "" "Finally, the :ref:`sec-class-ref` is the documentation of the Godot API, " "which is also available directly within the engine's script editor. It is " "generated automatically from a file in the main source repository, therefore " "the generated files of the documentation are not meant to be modified. See :" "ref:`doc_updating_the_class_reference` for details." msgstr "" #: ../../docs/about/introduction.rst:107 msgid "" "In addition to this documentation you may also want to take a look at the " "various `Godot demo projects `_." msgstr "" #: ../../docs/about/introduction.rst:110 msgid "Have fun reading and making games with Godot Engine!" msgstr "תהנו לקרוא וליצור משחקים עם המנוע גודוט!" #: ../../docs/about/faq.rst:1 msgid "FAQ" msgstr "" #: ../../docs/about/faq.rst:7 #: ../../docs/tutorials/assetlib/what_is_assetlib.rst:42 msgid "Frequently asked questions" msgstr "שאלות נפוצות" #: ../../docs/about/faq.rst:10 msgid "" "What can I do with Godot? How much does it cost? What are the license terms?" msgstr "מה אפשר לעשות עם גודוט? כמה הוא עולה? מה התנאים של הרישיון?" #: ../../docs/about/faq.rst:12 #, fuzzy msgid "" "Godot is `Free and Open-Source Software `_ available under the `OSI-approved `_ MIT license. This means it is free as in " "\"free speech\" as well as in \"free beer.\"" msgstr "" "גודוט הוא תוכנה חינמי/חופשי קוד-פתוח תחת רישיון MIT מאושר 'על ידי OSI " "`_." #: ../../docs/about/faq.rst:14 msgid "In short:" msgstr "בקצרה:" #: ../../docs/about/faq.rst:16 msgid "" "You are free to download and use Godot for any purpose, personal, non-" "profit, commercial, or otherwise." msgstr "" #: ../../docs/about/faq.rst:17 #, fuzzy msgid "" "You are free to modify, distribute, redistribute, and remix Godot to your " "heart's content, for any reason, both non-commercially and commercially." msgstr "אתה יכול לשנות, להפיץ, ולערוך מחדש את גודוט לעומק ליבך" #: ../../docs/about/faq.rst:19 #, fuzzy msgid "" "All the contents of this accompanying documentation are published under the " "permissive Creative Commons Attribution 3.0 (`CC-BY 3.0 `_) license, with attribution to \"Juan " "Linietsky, Ariel Manzur and the Godot Engine community.\"" msgstr "" "כל התוכן בתיעוד הזה תחת רישיון reative Commons Attribution 3.0 (`CC-BY 3.0 " "`_) וביחוס ל\"Juan Linietsky, " "Ariel Manzur and the Godot Engine community\"." #: ../../docs/about/faq.rst:23 msgid "" "Logos and icons are generally under the same Creative Commons license. Note " "that some third-party libraries included with Godot's source code may have " "different licenses." msgstr "" "לוֹגוֹ והסמלים הם תחת אותו רישיון Creative Commons. שים לב שחלק מהספריות צד " "שלישי שנמצאים כחלק מהקוד מקור של גודוט אולי בעלי רישיונות שונים." #: ../../docs/about/faq.rst:27 msgid "" "For full details, look at the `COPYRIGHT.txt `_ as well as the `LICENSE.txt `_ and `LOGO_LICENSE." "txt `_ " "files in the Godot repository." msgstr "" "למידע מלא, הסתכל בקבצים `COPYRIGHT.txt `_ וכמו כן ב `LICENSE.txt `_ ו- `LOGO_LICENSE.txt `_ במאגר של גודוט." #: ../../docs/about/faq.rst:31 #, fuzzy msgid "" "Also, see `the license page on the Godot website `_." msgstr "ראה גם `את דף הרישיון באתר גודוט `_." #: ../../docs/about/faq.rst:34 msgid "Which platforms are supported by Godot?" msgstr "איזה פלטפורמות נתמכות על ידי גודוט?" #: ../../docs/about/faq.rst:36 msgid "**For the editor:**" msgstr "**בשביל העורך:**" #: ../../docs/about/faq.rst:38 ../../docs/tutorials/misc/jitter_stutter.rst:59 #: ../../docs/development/compiling/compiling_with_mono.rst:334 msgid "Windows" msgstr "וינדוס (Windows)" #: ../../docs/about/faq.rst:39 ../../docs/about/faq.rst:45 #: ../../docs/getting_started/editor/default_key_mapping.rst:24 #: ../../docs/getting_started/editor/default_key_mapping.rst:89 #: ../../docs/getting_started/editor/default_key_mapping.rst:142 #: ../../docs/getting_started/editor/default_key_mapping.rst:217 #: ../../docs/getting_started/editor/default_key_mapping.rst:298 #: ../../docs/getting_started/editor/default_key_mapping.rst:345 #: ../../docs/getting_started/editor/default_key_mapping.rst:370 #: ../../docs/getting_started/editor/default_key_mapping.rst:381 #: ../../docs/getting_started/editor/default_key_mapping.rst:394 #: ../../docs/getting_started/editor/default_key_mapping.rst:425 #: ../../docs/getting_started/editor/default_key_mapping.rst:438 #: ../../docs/getting_started/editor/default_key_mapping.rst:461 #: ../../docs/getting_started/editor/default_key_mapping.rst:478 #: ../../docs/getting_started/editor/default_key_mapping.rst:513 #: ../../docs/tutorials/misc/jitter_stutter.rst:84 msgid "macOS" msgstr "" #: ../../docs/about/faq.rst:40 ../../docs/about/faq.rst:46 msgid "X11 (Linux, \\*BSD)" msgstr "X11 (לינוקס, ‎\\*BSD)" #: ../../docs/about/faq.rst:42 msgid "**For exporting your games:**" msgstr "** בשביל היצוא של המשחקים שלך:**" #: ../../docs/about/faq.rst:44 msgid "Windows (and UWP)" msgstr "וינדוס ( וגם UWP)" #: ../../docs/about/faq.rst:47 #: ../../docs/getting_started/step_by_step/exporting.rst:310 #: ../../docs/tutorials/misc/jitter_stutter.rst:90 #: ../../docs/development/compiling/compiling_with_mono.rst:326 msgid "Android" msgstr "Android" #: ../../docs/about/faq.rst:48 #: ../../docs/getting_started/step_by_step/exporting.rst:363 #: ../../docs/tutorials/misc/jitter_stutter.rst:96 #: ../../docs/development/compiling/compiling_with_mono.rst:328 msgid "iOS" msgstr "iOS" #: ../../docs/about/faq.rst:49 msgid "Web" msgstr "אתר אינטרנט" #: ../../docs/about/faq.rst:51 #, fuzzy msgid "" "Both 32- and 64-bit binaries are supported where it makes sense, with 64 " "being the default." msgstr "" "ישנה תמיכה גם בקבצים בינריים של 32 וגם של 64 סיביות איפה שמצב זה הגיוני, " "כאשר בררת המחדל היא 64." #: ../../docs/about/faq.rst:54 msgid "" "Some users also report building and using Godot successfully on ARM-based " "systems with Linux, like the Raspberry Pi." msgstr "" "חלק מהמשתמשים דיווחו שהם גם הצליחו להשתמש ב־Godot על מערכות המובססות על " "ארכיטקטורת ARM, כגון Raspberry Pi בעזרת לינוקס." #: ../../docs/about/faq.rst:57 msgid "" "Additionally, there is some unofficial third-party work being done on " "building for some consoles. However, none of this is included in the default " "build scripts or export templates at this time." msgstr "" "בנוסף על כך, ישנם כמה ישומיי צד שלישי לא רשמיים המסוגלים לבנות לחלק " "מהקונסולות. למרות זאת, ישומיים אלו לא כלולים בסקריפטי הבנייה ובתבניות הייצוא " "הרשמיים." #: ../../docs/about/faq.rst:61 msgid "" "For more on this, see the sections on :ref:`exporting ` and :ref:`compiling Godot yourself `." msgstr "" "לקבלת מידע נוסף, ראו פרק על `` section." msgstr "" "השפות הרשמיות הנתמכות בגודוט הם: C#, GDScript, סקריפטינג חזותי ו++C. ראו את " "הקטגוריות משנה לכל שפה בפרק '`_ is a great way to start your " "troubleshooting." msgstr "" "נא לשים לב כי התמיכה ב־C#‎ עדיין חדשה יחסית, על כן, יתכן ותצוצנה בעיות במהלך " "העבודה. קהילת המתכנתים הידידותיים שלנו עמלה רבות והיא תמיד מוכנה להתמודד עם " "בעיות חדשות, אך כיוון שמיזם זה הוא מיזם קוד פתוח, נמליץ לך תחילה לוודא " "שביצעת הכול כשורה לפני הכול. דרך טובה להתחיל את תהליך פתרון התקלות היא לחפש " "בדיונים תחת `<נושאים פתוחים `_ " "and `Nim `_." msgstr "" "לשפות חדשות, תיתכן תמיכה דרך צדדים שלישיים בעזרת GDNative / NativeScript / " "PluginScript. כרגע העבודה נמצאת בעיצומה על יצירת איגודים לא רשמיים לגודו, " "לדוגמה:\n" "`` וגם ``." msgstr "" #: ../../docs/about/faq.rst:102 msgid "" "There are several reasons to use GDScript--especially when you are " "prototyping, in alpha/beta stages of your project, or are not creating the " "next AAA title--but the most salient reason is the overall **reduction of " "complexity.**" msgstr "" #: ../../docs/about/faq.rst:106 msgid "" "The original intent of creating a tightly integrated, custom scripting " "language for Godot was two-fold: first, it reduces the amount of time " "necessary to get up and running with Godot, giving developers a rapid way of " "exposing themselves to the engine with a focus on productivity; second, it " "reduces the overall burden of maintenance, attenuates the dimensionality of " "issues, and allows the developers of the engine to focus on squashing bugs " "and improving features related to the engine core--rather than spending a " "lot of time trying to get a small set of incremental features working across " "a large set of languages." msgstr "" #: ../../docs/about/faq.rst:114 msgid "" "Since Godot is an open-source project, it was imperative from the start to " "prioritize a more integrated and seamless experience over attracting " "additional users by supporting more familiar programming languages--" "especially when supporting those more familiar languages would result in a " "worse experience. We understand if you would rather use another language in " "Godot (see the list of supported options above). That being said, if you " "haven't given GDScript a try, try it for **three days**. Just like Godot, " "once you see how powerful it is and rapid your development becomes, we think " "GDScript will grow on you." msgstr "" #: ../../docs/about/faq.rst:123 msgid "" "More information about getting comfortable with GDScript or dynamically " "typed languages can be found in the :ref:`doc_gdscript_more_efficiently` " "tutorial." msgstr "" #: ../../docs/about/faq.rst:127 msgid "What were the motivations behind creating GDScript?" msgstr "מה היו המניעים ליצירת GDScript?" #: ../../docs/about/faq.rst:129 msgid "" "In the early days, the engine used the `Lua `__ " "scripting language. Lua is fast, but creating bindings to an object oriented " "system (by using fallbacks) was complex and slow and took an enormous amount " "of code. After some experiments with `Python `__, it " "also proved difficult to embed." msgstr "" #: ../../docs/about/faq.rst:135 msgid "" "The main reasons for creating a custom scripting language for Godot were:" msgstr "הסיבות הראשיות ליצירת שפת סקריפטינג המותאמת אישית לגודוט:" #: ../../docs/about/faq.rst:137 msgid "" "Poor threading support in most script VMs, and Godot uses threads (Lua, " "Python, Squirrel, JavaScript, ActionScript, etc.)." msgstr "" #: ../../docs/about/faq.rst:139 msgid "" "Poor class-extending support in most script VMs, and adapting to the way " "Godot works is highly inefficient (Lua, Python, JavaScript)." msgstr "" #: ../../docs/about/faq.rst:141 msgid "" "Many existing languages have horrible interfaces for binding to C++, " "resulting in large amount of code, bugs, bottlenecks, and general " "inefficiency (Lua, Python, Squirrel, JavaScript, etc.) We wanted to focus on " "a great engine, not a great amount of integrations." msgstr "" #: ../../docs/about/faq.rst:144 msgid "" "No native vector types (vector3, matrix4, etc.), resulting in highly reduced " "performance when using custom types (Lua, Python, Squirrel, JavaScript, " "ActionScript, etc.)." msgstr "" #: ../../docs/about/faq.rst:147 msgid "" "Garbage collector results in stalls or unnecessarily large memory usage " "(Lua, Python, JavaScript, ActionScript, etc.)." msgstr "" #: ../../docs/about/faq.rst:149 msgid "" "Difficulty to integrate with the code editor for providing code completion, " "live editing, etc. (all of them). This is well-supported by GDScript." msgstr "" #: ../../docs/about/faq.rst:153 msgid "GDScript was designed to curtail the issues above, and more." msgstr "" #: ../../docs/about/faq.rst:156 msgid "What type of 3D model formats does Godot support?" msgstr "" #: ../../docs/about/faq.rst:158 msgid "" "Godot supports Collada via the `OpenCollada `_ exporter (Maya, 3DSMax). If you are " "using Blender, take a look at our own `Better Collada Exporter `_." msgstr "" #: ../../docs/about/faq.rst:161 msgid "As of Godot 3.0, glTF is supported." msgstr "" #: ../../docs/about/faq.rst:163 msgid "" "FBX is supported via the Open Asset Import library. However, FBX is " "proprietary so we recommend using other formats listed above, if suitable " "for your workflow." msgstr "" #: ../../docs/about/faq.rst:167 msgid "" "Will [insert closed SDK such as FMOD, GameWorks, etc.] be supported in Godot?" msgstr "" #: ../../docs/about/faq.rst:169 msgid "" "The aim of Godot is to create a free and open-source MIT-licensed engine " "that is modular and extendable. There are no plans for the core engine " "development community to support any third-party, closed-source/proprietary " "SDKs, as integrating with these would go against Godot's ethos." msgstr "" #: ../../docs/about/faq.rst:174 msgid "" "That said, because Godot is open-source and modular, nothing prevents you or " "anyone else interested in adding those libraries as a module and shipping " "your game with them--as either open- or closed-source." msgstr "" #: ../../docs/about/faq.rst:178 msgid "" "To see how support for your SDK of choice could still be provided, look at " "the Plugins question below." msgstr "" #: ../../docs/about/faq.rst:181 msgid "" "If you know of a third-party SDK that is not supported by Godot but that " "offers free and open-source integration, consider starting the integration " "work yourself. Godot is not owned by one person; it belongs to the " "community, and it grows along with ambitious community contributors like you." msgstr "" #: ../../docs/about/faq.rst:187 msgid "" "How should assets be created to handle multiple resolutions and aspect " "ratios?" msgstr "" #: ../../docs/about/faq.rst:189 msgid "" "This question pops up often and it's probably thanks to the misunderstanding " "created by Apple when they originally doubled the resolution of their " "devices. It made people think that having the same assets in different " "resolutions was a good idea, so many continued towards that path. That " "originally worked to a point and only for Apple devices, but then several " "Android and Apple devices with different resolutions and aspect ratios were " "created, with a very wide range of sizes and DPIs." msgstr "" #: ../../docs/about/faq.rst:197 msgid "" "The most common and proper way to achieve this is to, instead, use a single " "base resolution for the game and only handle different screen aspect ratios. " "This is mostly needed for 2D, as in 3D it's just a matter of Camera XFov or " "YFov." msgstr "" #: ../../docs/about/faq.rst:201 msgid "" "Choose a single base resolution for your game. Even if there are devices " "that go up to 2K and devices that go down to 400p, regular hardware scaling " "in your device will take care of this at little or no performance cost. Most " "common choices are either near 1080p (1920x1080) or 720p (1280x720). Keep in " "mind the higher the resolution, the larger your assets, the more memory they " "will take and the longer the time it will take for loading." msgstr "" #: ../../docs/about/faq.rst:209 msgid "" "Use the stretch options in Godot; 2D stretching while keeping aspect ratios " "works best. Check the :ref:`doc_multiple_resolutions` tutorial on how to " "achieve this." msgstr "" #: ../../docs/about/faq.rst:213 msgid "" "Determine a minimum resolution and then decide if you want your game to " "stretch vertically or horizontally for different aspect ratios, or if there " "is one aspect ratio and you want black bars to appear instead. This is also " "explained in :ref:`doc_multiple_resolutions`." msgstr "" #: ../../docs/about/faq.rst:218 msgid "" "For user interfaces, use the :ref:`anchoring ` to " "determine where controls should stay and move. If UIs are more complex, " "consider learning about Containers." msgstr "" #: ../../docs/about/faq.rst:222 msgid "And that's it! Your game should work in multiple resolutions." msgstr "" #: ../../docs/about/faq.rst:224 msgid "" "If there is a desire to make your game also work on ancient devices with " "tiny screens (fewer than 300 pixels in width), you can use the export option " "to shrink images, and set that build to be used for certain screen sizes in " "the App Store or Google Play." msgstr "" #: ../../docs/about/faq.rst:230 msgid "How can I extend Godot?" msgstr "" #: ../../docs/about/faq.rst:232 msgid "" "For extending Godot, like creating Godot Editor plugins or adding support " "for additional languages, take a look at :ref:`EditorPlugins " "` and tool scripts." msgstr "" #: ../../docs/about/faq.rst:236 msgid "Also, see the official blog posts on these topics:" msgstr "" #: ../../docs/about/faq.rst:238 msgid "" "`A look at the GDNative architecture `_" msgstr "" #: ../../docs/about/faq.rst:239 msgid "`GDNative is here! `_" msgstr "" #: ../../docs/about/faq.rst:241 msgid "" "You can also take a look at the GDScript implementation, the Godot modules, " "as well as the `unofficial Python support `_ for Godot. This would be a good starting point to see how " "another third-party library integrates with Godot." msgstr "" #: ../../docs/about/faq.rst:247 msgid "I would like to contribute! How can I get started?" msgstr "" #: ../../docs/about/faq.rst:249 msgid "" "Awesome! As an open-source project, Godot thrives off of the innovation and " "ambition of developers like you." msgstr "" #: ../../docs/about/faq.rst:252 msgid "" "The first place to get started is in the `issues `_. Find an issue that resonates with you, then " "proceed to the `How to Contribute `_ guide to learn how to " "fork, modify, and submit a Pull Request (PR) with your changes." msgstr "" #: ../../docs/about/faq.rst:257 msgid "I have a great idea for Godot. How can I share it?" msgstr "" #: ../../docs/about/faq.rst:259 msgid "" "It might be tempting to want to bring ideas to Godot, like ones that result " "in massive core changes, some sort of mimicry of what another game engine " "does, or alternative workflows that you'd like built into the editor. These " "are great, and we are thankful to have such motivated people want to " "contribute, but Godot's focus is and always will be the core functionality " "as outlined in the `Roadmap `_, `squashing bugs and addressing issues `_, and conversations between Godot " "community members." msgstr "" #: ../../docs/about/faq.rst:268 msgid "" "Most developers in the Godot community will be more interested to learn " "about things like:" msgstr "" #: ../../docs/about/faq.rst:271 msgid "" "Your experience using the software and the problems you have (we care about " "this much more than ideas on how to improve it)." msgstr "" #: ../../docs/about/faq.rst:273 msgid "" "The features you would like to see implemented because you need them for " "your project." msgstr "" #: ../../docs/about/faq.rst:275 msgid "" "The concepts that were difficult to understand while learning the software." msgstr "" #: ../../docs/about/faq.rst:276 msgid "The parts of your workflow you would like to see optimized." msgstr "" #: ../../docs/about/faq.rst:277 msgid "" "Parts where you missed clear tutorials or where the documentation wasn't " "clear." msgstr "" #: ../../docs/about/faq.rst:279 msgid "" "Please don't feel like your ideas for Godot are unwelcome. Instead, try to " "reformulate them as a problem first, so developers and the community have a " "functional foundation to ground your ideas on." msgstr "" #: ../../docs/about/faq.rst:283 msgid "" "A good way to approach sharing your ideas and problems with the community is " "as a set of user stories. Explain what you are trying to do, what behavior " "you expect to happen, and then what behavior actually happened. Framing " "problems and ideas this way will help the whole community stay focused on " "improving developer experiences as a whole." msgstr "" #: ../../docs/about/faq.rst:289 msgid "" "Bonus points for bringing screenshots, concrete numbers, test cases, or " "example projects (if applicable)." msgstr "" #: ../../docs/about/faq.rst:294 msgid "Why does Godot not use STL (Standard Template Library)" msgstr "" #: ../../docs/about/faq.rst:296 msgid "" "Like many other libraries (Qt as an example), Godot does not make use of " "STL. We believe STL is a great general purpose library, but we had special " "requirements for Godot." msgstr "" #: ../../docs/about/faq.rst:300 msgid "" "STL templates create very large symbols, which results in huge debug " "binaries. We use few templates with very short names instead." msgstr "" #: ../../docs/about/faq.rst:301 msgid "" "Most of our containers cater to special needs, like Vector, which uses copy " "on write and we use to pass data around, or the RID system, which requires " "O(1) access time for performance. Likewise, our hash map implementations are " "designed to integrate seamlessly with internal engine types." msgstr "" #: ../../docs/about/faq.rst:302 msgid "" "Our containers have memory tracking built-in, which helps better track " "memory usage." msgstr "" #: ../../docs/about/faq.rst:303 msgid "" "For large arrays, we use pooled memory, which can be mapped to either a " "preallocated buffer or virtual memory." msgstr "" #: ../../docs/about/faq.rst:304 msgid "" "We use our custom String type, as the one provided by STL is too basic and " "lacks proper internationalization support." msgstr "" #: ../../docs/about/faq.rst:307 msgid "Why does Godot not use exceptions?" msgstr "" #: ../../docs/about/faq.rst:309 msgid "" "We believe games should not crash, no matter what. If an unexpected " "situation happens, Godot will print an error (which can be traced even to " "script), but then it will try to recover as gracefully as possible and keep " "going." msgstr "" #: ../../docs/about/faq.rst:314 msgid "" "Additionally, exceptions significantly increase binary size for the " "executable." msgstr "" #: ../../docs/about/faq.rst:318 msgid "Why does Godot not enforce RTTI?" msgstr "" #: ../../docs/about/faq.rst:320 msgid "" "Godot provides its own type-casting system, which can optionally use RTTI " "internally. Disabling RTTI in Godot means considerably smaller binary sizes " "can be achieved, at a little performance cost." msgstr "" #: ../../docs/about/faq.rst:325 msgid "Why does Godot not force users to implement DoD (Data oriented Design)?" msgstr "" #: ../../docs/about/faq.rst:327 msgid "" "While Godot internally for a lot of the heavy performance tasks attempts to " "use cache coherency as well as possible, we believe most users don't really " "need to be forced to use DoD practices." msgstr "" #: ../../docs/about/faq.rst:331 msgid "" "DoD is mostly a cache coherency optimization that can only gain you " "significant performance improvements when dealing with dozens of thousands " "of objects (which are processed every frame with little modification). As " "in, if you are moving a few hundred sprites or enemies per frame, DoD won't " "help you, and you should consider a different approach to optimization." msgstr "" #: ../../docs/about/faq.rst:338 msgid "" "The vast majority of games do not need this and Godot provides handy helpers " "to do the job for most cases when you do." msgstr "" #: ../../docs/about/faq.rst:341 msgid "" "If a game that really needs to process such large amount of objects is " "needed, our recommendation is to use C++ and GDNative for the high " "performance parts and GDScript (or C#) for the rest of the game." msgstr "" #: ../../docs/about/faq.rst:346 msgid "How can I support Godot development or contribute?" msgstr "" #: ../../docs/about/faq.rst:348 msgid "See :ref:`doc_ways_to_contribute`." msgstr "" #: ../../docs/about/faq.rst:351 msgid "Who is working on Godot? How can I contact you?" msgstr "" #: ../../docs/about/faq.rst:353 msgid "" "See the corresponding page on the `Godot website `_." msgstr "" #: ../../docs/about/docs_changelog.rst:4 msgid "Documentation changelog" msgstr "" #: ../../docs/about/docs_changelog.rst:6 msgid "" "The documentation is continually being improved. The release of version 3.2 " "includes many new tutorials, many fixes and updates for old tutorials, and " "many updates to the :ref:`class reference `. Below is a list " "of new tutorials added since version 3.1." msgstr "" #: ../../docs/about/docs_changelog.rst:11 msgid "" "This document only contains new tutorials so not all changes are reflected, " "many tutorials have been substantially updated but are not reflected in this " "document." msgstr "" #: ../../docs/about/docs_changelog.rst:15 msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:18 #: ../../docs/about/docs_changelog.rst:118 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" #: ../../docs/about/docs_changelog.rst:20 msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:23 #: ../../docs/about/docs_changelog.rst:134 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" #: ../../docs/about/docs_changelog.rst:25 #, fuzzy msgid ":ref:`doc_2d_sprite_animation`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:28 #: ../../docs/tutorials/audio/index.rst:2 msgid "Audio" msgstr "שמע" #: ../../docs/about/docs_changelog.rst:30 #, fuzzy msgid ":ref:`doc_recording_with_microphone`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:31 #, fuzzy msgid ":ref:`doc_sync_with_audio`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:34 ../../docs/tutorials/math/index.rst:2 msgid "Math" msgstr "" #: ../../docs/about/docs_changelog.rst:36 #, fuzzy msgid ":ref:`doc_beziers_and_curves`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:37 #, fuzzy msgid ":ref:`doc_interpolation`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:40 #: ../../docs/tutorials/inputs/index.rst:2 msgid "Inputs" msgstr "" #: ../../docs/about/docs_changelog.rst:42 #, fuzzy msgid ":ref:`doc_input_examples`" msgstr "Android" #: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/i18n/index.rst:2 msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:47 msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:50 #: ../../docs/about/docs_changelog.rst:170 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" #: ../../docs/about/docs_changelog.rst:55 msgid "Your First Shader Series:" msgstr "" #: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:56 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:57 #, fuzzy msgid ":ref:`doc_visual_shaders`" msgstr "Android" #: ../../docs/about/docs_changelog.rst:60 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" #: ../../docs/about/docs_changelog.rst:62 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:65 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" #: ../../docs/about/docs_changelog.rst:67 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial_part_one`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:68 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial_part_two`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:71 #: ../../docs/about/docs_changelog.rst:185 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" #: ../../docs/about/docs_changelog.rst:73 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" #: ../../docs/about/docs_changelog.rst:74 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" #: ../../docs/about/docs_changelog.rst:75 #, fuzzy msgid ":ref:`doc_visual_shader_plugins`" msgstr "Android" #: ../../docs/about/docs_changelog.rst:78 #: ../../docs/about/docs_changelog.rst:196 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" #: ../../docs/about/docs_changelog.rst:80 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:83 #: ../../docs/about/docs_changelog.rst:201 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "יצירת תוכן" #: ../../docs/about/docs_changelog.rst:90 msgid "Procedural geometry series:" msgstr "" #: ../../docs/about/docs_changelog.rst:86 msgid ":ref:`Procedural geometry `" msgstr "" #: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_arraymesh`" msgstr "Android" #: ../../docs/about/docs_changelog.rst:88 #, fuzzy msgid ":ref:`doc_surfacetool`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:89 #, fuzzy msgid ":ref:`doc_meshdatatool`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:90 #, fuzzy msgid ":ref:`doc_immediategeometry`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:93 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_using_multimesh`" msgstr "" #: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_using_servers`" msgstr "" #: ../../docs/about/docs_changelog.rst:99 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" #: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_complying_with_licenses`" msgstr "" #: ../../docs/about/docs_changelog.rst:104 msgid "New tutorials since version 3.0" msgstr "" #: ../../docs/about/docs_changelog.rst:107 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 #: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:18 msgid "Step by step" msgstr "" #: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_signals`" msgstr "" #: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_exporting`" msgstr "" #: ../../docs/about/docs_changelog.rst:113 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" #: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" #: ../../docs/about/docs_changelog.rst:120 msgid "Best Practices:" msgstr "" #: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" #: ../../docs/about/docs_changelog.rst:124 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:125 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:126 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" #: ../../docs/about/docs_changelog.rst:127 msgid ":ref:`doc_node_alternatives`" msgstr "" #: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_godot_interfaces`" msgstr "" #: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_godot_notifications`" msgstr "" #: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_data_preferences`" msgstr "" #: ../../docs/about/docs_changelog.rst:131 msgid ":ref:`doc_logic_preferences`" msgstr "" #: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" #: ../../docs/about/docs_changelog.rst:137 msgid ":ref:`doc_2d_meshes`" msgstr "" #: ../../docs/about/docs_changelog.rst:140 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" #: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_csg_tools`" msgstr "" #: ../../docs/about/docs_changelog.rst:143 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" #: ../../docs/about/docs_changelog.rst:144 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" #: ../../docs/about/docs_changelog.rst:147 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" #: ../../docs/about/docs_changelog.rst:149 msgid ":ref:`doc_ragdoll_system`" msgstr "" #: ../../docs/about/docs_changelog.rst:150 msgid ":ref:`doc_soft_body`" msgstr "" #: ../../docs/about/docs_changelog.rst:153 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" #: ../../docs/about/docs_changelog.rst:155 msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:156 msgid ":ref:`doc_animation_tree`" msgstr "" #: ../../docs/about/docs_changelog.rst:159 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" #: ../../docs/about/docs_changelog.rst:161 msgid ":ref:`doc_gui_containers`" msgstr "" #: ../../docs/about/docs_changelog.rst:164 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" #: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_viewport_as_texture`" msgstr "" #: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_custom_postprocessing`" msgstr "" #: ../../docs/about/docs_changelog.rst:172 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" #: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" #: ../../docs/about/docs_changelog.rst:174 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" #: ../../docs/about/docs_changelog.rst:176 msgid "Shading Reference:" msgstr "" #: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_shading_language`" msgstr "" #: ../../docs/about/docs_changelog.rst:180 msgid ":ref:`doc_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:181 msgid ":ref:`doc_canvas_item_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:182 msgid ":ref:`doc_particle_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:187 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "אנימציות" #: ../../docs/about/docs_changelog.rst:188 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" #: ../../docs/about/docs_changelog.rst:191 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" #: ../../docs/about/docs_changelog.rst:193 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" #: ../../docs/about/docs_changelog.rst:198 msgid ":ref:`doc_thread_safe_apis`" msgstr "" #: ../../docs/about/docs_changelog.rst:203 msgid ":ref:`doc_making_trees`" msgstr "" #: ../../docs/about/docs_changelog.rst:206 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" #: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_jitter_stutter`" msgstr "" #: ../../docs/about/docs_changelog.rst:209 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" #: ../../docs/about/docs_changelog.rst:210 msgid ":ref:`doc_change_scenes_manually`" msgstr "" #: ../../docs/about/docs_changelog.rst:211 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" #: ../../docs/about/docs_changelog.rst:214 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:349 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:92 #: ../../docs/development/compiling/compiling_for_x11.rst:89 #: ../../docs/development/compiling/compiling_for_osx.rst:31 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:33 msgid "Compiling" msgstr "" #: ../../docs/about/docs_changelog.rst:216 msgid ":ref:`doc_optimizing_for_size`" msgstr "" #: ../../docs/about/docs_changelog.rst:217 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" #: ../../docs/about/docs_changelog.rst:220 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" #: ../../docs/about/docs_changelog.rst:222 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" #: ../../docs/about/release_policy.rst:4 msgid "Godot release policy" msgstr "" #: ../../docs/about/release_policy.rst:7 msgid "Godot versioning" msgstr "" #: ../../docs/about/release_policy.rst:9 msgid "" "Godot uses ``major.minor.patch`` version numbering. However, it does not " "strictly follow `Semantic Versioning `__. This means " "that releases considered \"semver-minor\" by that standard (such as 3.1 -> " "3.2) will most likely introduce breaking changes. Still, there won't be as " "many breaking changes as a \"semver-major\" version bump such as 3.2 -> 4.0." msgstr "" #: ../../docs/about/release_policy.rst:15 msgid "" "In the interest of stability and usability, patch releases may occasionally " "introduce small breaking changes as well. When repackaging Godot projects (e." "g. in a Flatpak), make sure to always use the same patch version as the one " "used to initially export the project." msgstr "" #: ../../docs/about/release_policy.rst:22 msgid "" "The first release in a major/minor release series doesn't end with a " "trailing zero. For example, the first release in the 3.2 series is ``3.2``, " "not ``3.2.0``." msgstr "" #: ../../docs/about/release_policy.rst:27 msgid "Release support timeline" msgstr "" #: ../../docs/about/release_policy.rst:29 msgid "" "Godot versions are supported for a certain amount of time. While these " "durations are not set in stone, here's a table with the expected level of " "support for each Godot version:" msgstr "" #: ../../docs/about/release_policy.rst:34 msgid "**Version**" msgstr "" #: ../../docs/about/release_policy.rst:34 msgid "**Release date**" msgstr "" #: ../../docs/about/release_policy.rst:34 msgid "**Support level**" msgstr "" #: ../../docs/about/release_policy.rst:36 msgid "Godot 4.0" msgstr "" #: ../../docs/about/release_policy.rst:36 msgid "~2021 (see below)" msgstr "" #: ../../docs/about/release_policy.rst:36 msgid "|unstable| *Current focus of development (unstable).*" msgstr "" #: ../../docs/about/release_policy.rst:38 msgid "Godot 3.2" msgstr "" #: ../../docs/about/release_policy.rst:38 msgid "January 2020" msgstr "" #: ../../docs/about/release_policy.rst:38 msgid "" "|supported| Backwards-compatible new features (backported from the " "``master`` branch) as well as bug, security, and platform support fixes." msgstr "" #: ../../docs/about/release_policy.rst:41 msgid "Godot 3.1" msgstr "" #: ../../docs/about/release_policy.rst:41 msgid "March 2019" msgstr "" #: ../../docs/about/release_policy.rst:41 #: ../../docs/about/release_policy.rst:43 #: ../../docs/about/release_policy.rst:45 msgid "|partial| Only critical, security and platform support fixes." msgstr "" #: ../../docs/about/release_policy.rst:43 msgid "Godot 3.0" msgstr "" #: ../../docs/about/release_policy.rst:43 msgid "January 2018" msgstr "" #: ../../docs/about/release_policy.rst:45 msgid "Godot 2.1" msgstr "" #: ../../docs/about/release_policy.rst:45 msgid "July 2016" msgstr "" #: ../../docs/about/release_policy.rst:47 msgid "Godot 2.0" msgstr "" #: ../../docs/about/release_policy.rst:47 msgid "February 2016" msgstr "" #: ../../docs/about/release_policy.rst:47 #: ../../docs/about/release_policy.rst:49 #: ../../docs/about/release_policy.rst:51 msgid "|eol| No longer supported." msgstr "" #: ../../docs/about/release_policy.rst:49 msgid "Godot 1.1" msgstr "" #: ../../docs/about/release_policy.rst:49 msgid "May 2015" msgstr "" #: ../../docs/about/release_policy.rst:51 msgid "Godot 1.0" msgstr "" #: ../../docs/about/release_policy.rst:51 msgid "December 2014" msgstr "" #: ../../docs/about/release_policy.rst:59 msgid "" "**Legend:** |supported| Full support - |partial| Partial support - |eol| No " "support (end of life) - |unstable| Development version" msgstr "" #: ../../docs/about/release_policy.rst:65 msgid "" "Pre-release Godot versions aren't intended to be used in production and are " "provided on a best-effort basis." msgstr "" #: ../../docs/about/release_policy.rst:69 msgid "When is the next release out?" msgstr "" #: ../../docs/about/release_policy.rst:71 msgid "" "While Godot contributors aren't working under any deadlines, there's usually " "a major or minor Godot release made available every year. Following this " "trend, this means Godot 4.0 will most likely be released in **2021**." msgstr "" #: ../../docs/about/release_policy.rst:75 msgid "" "Patch releases are made available more frequently, typically every 2-6 " "months while a release is fully supported. Partially supported releases will " "only have new patch releases once an important security or platform support " "fix has been merged." msgstr "" #: ../../docs/about/release_policy.rst:82 msgid "" "The `roadmap `__ repository " "documents features that have been agreed upon and may be implemented in " "future Godot releases." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:4 #, fuzzy msgid "Introduction to Godot's editor" msgstr "מבוא" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:6 msgid "" "This tutorial will run you through Godot's interface. We're going to look at " "the **Project Manager, docks, workspaces** and everything you need to know " "to get started with the engine." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:11 msgid "Project manager" msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:13 msgid "" "When you launch Godot, the first window you'll see is the Project Manager. " "Since you have no projects there will be a popup asking if you want to open " "the asset library, just click cancel, we'll look at it later." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:19 msgid "" "Now you should see the project manager. It lets you create, remove, import " "or play game projects." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:24 msgid "" "In the top-right corner you'll find a drop-down menu to change the editor's " "language." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:29 msgid "" "From the **Templates** tab you can download open source project templates " "and demos from the Asset Library to help you get started faster. Just select " "the template or demo you want, click download, once it's finished " "downloading click install and choose where you want the project to go. You " "can learn more about it in :ref:`doc_what_is_assetlib`." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:38 msgid "Create or import a project" msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:40 msgid "" "To create a new project, click the ``New Project`` button on the right. Here " "you give it a name, choose an empty folder on your computer to save it to, " "and choose a renderer." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:46 msgid "" "Click the Browse button to open Godot's file browser and pick a location or " "type the folder's path in the Project Path field." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:51 msgid "" "When you see the green tick on the right, it means the engine detects an " "empty folder. You can also click the ``Create Folder`` button next to your " "project name and an empty folder will be created with that name for the " "project." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:55 msgid "" "Finally, you need to choose which renderer to use (OpenGL ES 3.0 or OpenGL " "ES 2.0). The advantages and disadvantages of each are listed to help you " "choose, and you can refer to :ref:`doc_gles2_gles3_differences` for more " "details. Note that you can change the backend from the project settings if " "you change your mind later on. For this tutorial either backend is fine." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:61 msgid "" "Once you are done click ``Create & Edit``. Godot will create the project for " "you and open it in the editor." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:64 msgid "" "The next time you open the project manager, you'll see your new project in " "the list. Double click on it to open it in the editor." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:69 msgid "" "You can import existing projects in a similar way, using the Import button. " "Locate the folder that contains the project or the ``project.godot`` file to " "import and edit it." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:75 msgid "When the folder path is correct, you'll see a green checkmark." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:80 msgid "Your first look at Godot's editor" msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:82 msgid "" "Welcome to Godot! With your project open, you should see the editor's " "interface with menus along the top of the interface and docks along the far " "extremes of the interface on either side of the viewport." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:88 msgid "" "At the top, from left to right, you can see the **main menus**, the " "**workspaces**, and the **playtest buttons**." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:91 msgid "" "The **FileSystem dock** is where you'll manage your project files and assets." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:95 msgid "" "The **Scene dock** lists the active scene's content and the **Inspector** " "allows for the management of the properties of a scene's content." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:100 msgid "" "In the center, you have the **Toolbar** at the top, where you'll find tools " "to move, scale or lock your scene's objects. It changes as you jump to " "different workspaces." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:106 msgid "" "The **Bottom Panel** is the host for the debug console, the animation " "editor, the audio mixer… They are wide and can take precious space. That's " "why they're folded by default." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:113 msgid "The workspaces" msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:115 msgid "" "You can see four workspace buttons at the top: 2D, 3D, Script and AssetLib." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:118 msgid "" "You'll use the **2D workspace** for all types of games. In addition to 2D " "games, the 2D workspace is where you'll build your interfaces. Press :kbd:" "`F1` (or :kbd:`Alt + 1` on macOS) to access it." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:124 msgid "" "In the **3D workspace**, you can work with meshes, lights, and design levels " "for 3D games. Press :kbd:`F2` (or :kbd:`Alt + 2` on macOS) to access it." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:129 msgid "" "Notice the perspective button under the toolbar, it opens a list of options " "related to the 3D viewport." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:134 msgid "" "Read :ref:`doc_introduction_to_3d` for more detail about **3D workspace**." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:136 msgid "" "The **Script** workspace is a complete code editor with a debugger, rich " "auto-completion, and built-in code reference. Press :kbd:`F3` (or :kbd:`Alt " "+ 3` on macOS) to access it, and :kbd:`Shift + F1` to search the reference." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:142 msgid "" "To search for information about a class, method, property, constant, or " "signal in the engine while you are writing a script, press the \"Search Help" "\" button at the top right of the Script workspace." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:148 msgid "" "A new window will pop up. Search for the item that you want to find " "information about." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:153 msgid "" "Click on the item you are looking for and press open. The documentation for " "the item will be displayed in the script workspace." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:158 msgid "" "Finally, the **AssetLib** is a library of free and open source add-ons, " "scripts and assets to use in your projects." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:162 msgid "Modify the interface" msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:164 msgid "" "Godot's interface lives in a single window. You cannot split it across " "multiple screens although you can work with an external code editor like " "Atom or Visual Studio Code for instance." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:169 msgid "Move and resize docks" msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:171 msgid "" "Click and drag on the edge of any dock or panel to resize it horizontally or " "vertically." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:176 msgid "" "Click the three-dotted icon at the top of any dock to change its location." msgstr "" #: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:181 msgid "" "Go to the ``Editor`` menu and ``Editor Settings`` to fine-tune the look and " "feel of the editor." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:4 msgid "Scenes and nodes" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:11 msgid "" "Imagine for a second that you are not a game developer anymore. Instead, " "you're a chef! Change your hipster outfit for a toque and a double breasted " "jacket. Now, instead of making games, you create new and delicious recipes " "for your guests." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:16 msgid "" "So, how does a chef create a recipe? Recipes are divided into two sections: " "the first is the ingredients and the second is the instructions to prepare " "it. This way, anyone can follow the recipe and savor your magnificent " "creation." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:21 msgid "" "Making games in Godot feels pretty much the same way. Using the engine feels " "like being in a kitchen. In this kitchen, *nodes* are like a refrigerator " "full of fresh ingredients with which to cook." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:25 msgid "" "There are many types of nodes. Some show images, others play sound, other " "nodes display 3D models, etc. There are dozens of them." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:31 msgid "" "But let's start with the basics. Nodes are fundamental building blocks for " "creating a game. As mentioned above, a node can perform a variety of " "specialized functions. However, any given node always has the following " "attributes:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:35 msgid "It has a name." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:36 msgid "It has editable properties." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:37 msgid "It can receive a callback to process every frame." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:38 msgid "It can be extended (to have more functions)." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:39 msgid "It can be added to another node as a child." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:43 msgid "" "The last one is important. Nodes can have other nodes as children. When " "arranged in this way, the nodes become a **tree**." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:46 msgid "" "In Godot, the ability to arrange nodes in this way creates a powerful tool " "for organizing projects. Since different nodes have different functions, " "combining them allows for the creation of more complex functions." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:50 msgid "" "Don't worry if this doesn't click yet. We will continue to explore this over " "the next few sections. The most important fact to remember for now is that " "nodes exist and can be arranged this way." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:55 msgid "Scenes" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:59 msgid "" "Now that the concept of nodes has been defined, the next logical step is to " "explain what a Scene is." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:62 msgid "" "A scene is composed of a group of nodes organized hierarchically (in tree " "fashion). Furthermore, a scene:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:65 msgid "always has one root node." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:66 msgid "can be saved to disk and loaded back." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:67 msgid "can be *instanced* (more on that later)." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:69 msgid "" "Running a game means running a scene. A project can contain several scenes, " "but for the game to start, one of them must be selected as the main scene." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:72 msgid "" "Basically, the Godot editor is a **scene editor**. It has plenty of tools " "for editing 2D and 3D scenes as well as user interfaces, but the editor is " "based on the concept of editing a scene and the nodes that compose it." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:77 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/development/compiling/compiling_with_mono.rst:196 msgid "Editor" msgstr "עורך" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:79 msgid "" "Open the project you made in :ref:`doc_intro_to_the_editor_interface`, or " "create a new one. This will open the Godot editor:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:84 msgid "" "As mentioned before, making games in Godot feels like being in a kitchen, so " "let's open the refrigerator and add some fresh nodes to the project. We'll " "begin with a \"Hello World\" message that we'll put on the screen." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:89 msgid "" "To do this we need to add a Label node. Press the \"Add Child Node\" button " "at the top left of the scene dock (the icon represents a plus symbol). This " "button is the main way to add new nodes to a scene, and will always add the " "chosen node as a child of the currently selected node (or, in an empty " "scene, as the \"root\" node)." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:97 msgid "" "In an empty scene (without root node), the scene dock shows several options " "to quickly add a root node to the scene. \"2D Scene\" adds a Node2D node, " "\"3D Scene\" adds a Spatial node, \"User Interface\" adds a Control node, " "and \"Custom Node\" which lets you select any node (so it is equivalent to " "pressing the \"Add Child Node\" button). You can also press the star-shaped " "icon to toggle the display of your favorited nodes." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:105 msgid "" "Note that these presets are here for convenience and are not mandatory for " "the different types of scenes. Not every 3D scene needs a Spatial node as " "its root node, likewise not every GUI or 2D scene needs a Control node or " "Node2D as their root node." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:110 msgid "" "Now, to add a label node to this scene you can click on the Custom Node " "button or the Add Node button at the top. In scenes that aren't empty you " "use the add node button to create every child node." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:116 msgid "" "This will open the Create Node dialog, showing the long list of nodes that " "can be created:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:121 msgid "" "From there, select the \"Label\" node first. Searching for it is probably " "the fastest way:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:126 msgid "And finally, create the Label! A lot happens when Create is pressed:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:130 msgid "" "First of all, the scene changes to the 2D editor (because Label is a 2D Node " "type), and the Label appears, selected, at the top left corner of the " "viewport." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:133 msgid "" "The node appears in the scene tree editor in the Scene dock, and the label " "properties appear in the Inspector dock." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:136 msgid "" "The next step will be to change the \"Text\" Property of the label. Let's " "change it to \"Hello World\":" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:141 msgid "" "Ok, everything's ready to run the scene! Press the PLAY SCENE Button on the " "top bar (or hit :kbd:`F6`):" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:146 msgid "Aaaand... Oops." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:150 msgid "" "Scenes need to be saved to be run, so save the scene to something like Hello." "tscn in Scene -> Save:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:155 msgid "" "And here's when something funny happens. The file dialog is a special file " "dialog, and only allows you to save inside the project. The project root is " "``res://`` which means \"resource path\". This means that files can only be " "saved inside the project. For the future, when doing file operations in " "Godot, remember that ``res://`` is the resource path, and no matter the " "platform or install location, it is the way to locate where resource files " "are from inside the game." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:163 msgid "" "After saving the scene and pressing run scene again, the \"Hello World\" " "demo should finally execute:" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:168 msgid "Success!" msgstr "הצלחה!" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:172 msgid "" "If this doesn't immediately work and you have a hiDPI display on at least " "one of your monitors, go to **Project → Project Settings → Display → " "Window** then enable **Allow Hidpi** under **Dpi**." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:180 msgid "Configuring the project" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:182 msgid "" "Ok, it's time to configure the project. Right now, the only way to run " "something is to execute the current scene. Projects, however, may have " "several scenes, so one of them must be set as the main scene. This is the " "scene that will be loaded any time the project is run." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:187 msgid "" "These settings are all stored in a project.godot file, which is a plaintext " "file in win.ini format (for easy editing). There are dozens of settings that " "you can change in this file to alter how a project executes. To simplify " "this process, Godot provides a project settings dialog, which acts as a sort " "of frontend to editing a project.godot file." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:193 msgid "To access that dialog, select Project -> Project Settings. Try it now." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:195 msgid "" "Once the window opens, let's select a main scene. Locate the `Application/" "Run/Main Scene` property and click on it to select 'Hello.tscn'." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:200 msgid "" "Now, with this change, when you press the regular Play button (or F5), this " "scene will run, no matter which scene is actively being edited." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:203 msgid "" "The project settings dialog provides a lot of options that can be saved to a " "project.godot file and shows their default values. If you change a value, a " "tick is marked to the left of its name. This means that the property will be " "saved to the project.godot file and remembered." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:208 msgid "" "As a side note, it is also possible to add custom configuration options and " "read them in at run-time using the :ref:`ProjectSettings " "` singleton." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:212 msgid "To be continued..." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:214 msgid "" "This tutorial talked about \"scenes and nodes\", but so far there has been " "only *one* scene and *one* node! Don't worry, the next tutorial will expand " "on that..." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:4 msgid "Instancing" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:9 msgid "" "Creating a single scene and adding nodes into it might work for small " "projects, but as a project grows in size and complexity, the number of nodes " "can quickly become unmanageable. To address this, Godot allows a project to " "be separated into any number of scenes. This provides you with a powerful " "tool that helps you organize the different components of your game." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:15 msgid "" "In :ref:`doc_scenes_and_nodes` you learned that a scene is a collection of " "nodes organized in a tree structure, with a single node as the tree root." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:20 msgid "" "You can create as many scenes as you like and save them to disk. Scenes " "saved in this manner are called \"Packed Scenes\" and have a ``.tscn`` " "filename extension." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:26 msgid "" "Once a scene has been saved, it can be instanced into another scene as if it " "were any other node." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:31 msgid "In the above picture, Scene B was added to Scene A as an instance." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:34 msgid "Instancing by example" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:36 msgid "" "To learn how instancing works, let's start by downloading a sample project: :" "download:`instancing.zip `." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:39 msgid "" "Unzip this project anywhere you like. Then open Godot and add this project " "to the project manager using the 'Import' button:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:44 msgid "" "Browse to the folder you extracted and open the \"project.godot\" file you " "can find inside it. After doing this, the new project will appear on the " "list of projects. Edit the project by pressing the 'Edit' button." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:48 msgid "" "This project contains two scenes: \"Ball.tscn\" and \"Main.tscn\". The ball " "scene uses a :ref:`RigidBody2D ` to provide physics " "behavior while the main scene has a set of obstacles for the ball to collide " "with (using :ref:`StaticBody2D `)." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:57 msgid "Open the ``Main`` scene, and then select the root node:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:61 msgid "" "We want to add an instance of the ``Ball`` scene as a child of ``Main``. " "Click the \"link\"-shaped button (its hover-text says \"Instance a scene " "file as a Node.\") and select the ``Ball.tscn`` file." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:67 msgid "" "The ball will be placed at the top-left corner of the screen area (this is " "``(0, 0)`` in screen coordinates). Click and drag the ball somewhere near " "the top-center of the scene:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:73 msgid "Press \"Play\" and watch the ball fall to the bottom of the screen:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:78 msgid "Multiple instances" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:80 msgid "" "You can add as many instances as you like to a scene, either by using the " "\"Instance\" button again, or by clicking on the ball instance and pressing :" "kbd:`Ctrl + D` (:kbd:`Cmd + D` on macOS) to duplicate it:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:86 msgid "Run the scene again and all of the balls will fall." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:91 msgid "Editing instances" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:93 msgid "" "Open the ``Ball`` scene, expand the ``PhysicsMaterial`` by clicking on it, " "and set the ``Bounce`` property to ``1``." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:98 msgid "" "Press \"Play\" and notice that all of the instanced balls are now much more " "bouncy. Because the instanced balls are based on the saved scene, changes to " "that scene will affect all instances." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:102 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " "and then in the ``Main`` scene, select one of the instanced balls. Resources " "like ``PhysicsMaterial`` are shared between instances by default, so we need " "to make it unique. Click on the down arrow and select \"Make Unique\". Set " "its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:110 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " "instanced scene to override its value in the saved scene. Even if that " "property is modified in the original scene, the custom value will remain. " "Pressing the revert button will restore the property to the value in the " "saved scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:118 #: ../../docs/getting_started/step_by_step/signals.rst:276 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:120 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " "see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 msgid "Instancing (continued)" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:7 msgid "Recap" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:9 msgid "Instancing has many handy uses. At a glance, with instancing you have:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:11 msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 msgid "A tool to manage and edit multiple node instances at once." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This distinguishes Godot from all the other " "engines out there. Godot was designed from the ground up around this concept." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " "instead think about your scenes in a more natural way. Start by imagining " "the visible elements in your game, the ones that can be named not just by a " "programmer, but by anyone." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " "instancing (either by code or directly in the editor) for the ownership " "relationships." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " "Designing based on scenes replaces that approach and makes development much " "faster and more straightforward, allowing you to concentrate on the game " "logic itself. Because most game components map directly to a scene, using a " "design based on scene instantiation means little other architectural code is " "needed." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " "(also scenes) in them. Later, we could make a house scene, connecting rooms " "to make up its interior." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " "designed to be user friendly for programmers and non-programmers alike. A " "typical team development process can involve 2D or 3D artists, level " "designers, game designers, and animators, all working with the editor " "interface." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " "about it too much, and go on to the next tutorial!" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:9 msgid "" "Before Godot 3.0, the only choice for scripting a game was to use :ref:" "`GDScript`. Nowadays, Godot has four (yes, four!) official " "languages and the ability to add extra scripting languages dynamically!" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:13 msgid "" "This is great, mostly due to the large amount of flexibility provided, but " "it also makes our work supporting languages more difficult." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:16 msgid "" "The \"main\" languages in Godot, though, are GDScript and VisualScript. The " "main reason to choose them is their level of integration with Godot, as this " "makes the experience smoother; both have slick editor integration, while C# " "and C++ need to be edited in a separate IDE. If you are a big fan of " "statically typed languages, go with C# and C++ instead." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:22 #: ../../docs/getting_started/scripting/gdscript/index.rst:2 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:30 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:59 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:199 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:214 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:226 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:237 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:245 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:260 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:272 #: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:329 #: ../../docs/tutorials/debug/overview_of_debugging_tools.rst:107 msgid "GDScript" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:24 msgid "" ":ref:`GDScript` is, as mentioned above, the main language used " "in Godot. Using it has some positive points compared to other languages due " "to its high integration with Godot:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:28 msgid "" "It's simple, elegant, and designed to be familiar for users of other " "languages such as Lua, Python, Squirrel, etc." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:29 msgid "Loads and compiles blazingly fast." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:30 msgid "" "The editor integration is a pleasure to work with, with code completion for " "nodes, signals, and many other items pertaining to the scene being edited." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:31 msgid "" "Has vector types built-in (such as Vectors, transforms, etc.), making it " "efficient for heavy use of linear algebra." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:32 msgid "" "Supports multiple threads as efficiently as statically typed languages - one " "of the limitations that made us avoid VMs such as Lua, Squirrel, etc." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:33 msgid "" "Uses no garbage collector, so it trades a small bit of automation (most " "objects are reference counted anyway), by determinism." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:34 msgid "" "Its dynamic nature makes it easy to optimize sections of code in C++ (via " "GDNative) if more performance is required, all without recompiling the " "engine." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:36 msgid "" "If you're undecided and have experience with programming, especially " "dynamically typed languages, go for GDScript!" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:40 #: ../../docs/getting_started/scripting/visual_script/index.rst:2 msgid "VisualScript" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:42 msgid "" "Beginning with 3.0, Godot offers :ref:`Visual " "Scripting`. This is a typical implementation of a " "\"blocks and connections\" language, but adapted to how Godot works." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:46 msgid "" "Visual scripting is a great tool for non-programmers, or even for " "experienced developers who want to make parts of the code more accessible to " "others, like game designers or artists." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:50 msgid "" "It can also be used by programmers to build state machines or custom visual " "node workflows - for example, a dialogue system." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:55 msgid ".NET / C#" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:57 msgid "" "As Microsoft's C# is a favorite amongst game developers, we have added " "official support for it. C# is a mature language with tons of code written " "for it, and support was added thanks to a generous donation from Microsoft." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:62 msgid "" "It has an excellent tradeoff between performance and ease of use, although " "one must be aware of its garbage collector." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:65 msgid "" "Since Godot uses the `Mono `_ .NET runtime, in " "theory any third-party .NET library or framework can be used for scripting " "in Godot, as well as any Common Language Infrastructure-compliant " "programming language, such as F#, Boo or ClojureCLR. In practice however, C# " "is the only officially supported .NET option." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:71 msgid "GDNative / C++" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:73 msgid "" "Finally, one of our brightest additions for the 3.0 release: GDNative allows " "scripting in C++ without needing to recompile (or even restart) Godot." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:77 msgid "" "Any C++ version can be used, and mixing compiler brands and versions for the " "generated shared libraries works perfectly, thanks to our use of an internal " "C API Bridge." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:81 msgid "" "This language is the best choice for performance and does not need to be " "used throughout an entire game, as other parts can be written in GDScript or " "Visual Script. However, the API is clear and easy to use as it resembles, " "mostly, Godot's actual C++ API." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:86 msgid "" "More languages can be made available through the GDNative interface, but " "keep in mind we don't have official support for them." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:90 msgid "Scripting a scene" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:92 msgid "" "For the rest of this tutorial we'll set up a GUI scene consisting of a " "button and a label, where pressing the button will update the label. This " "will demonstrate:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:96 msgid "Writing a script and attaching it to a node." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:97 msgid "Hooking up UI elements via signals." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:98 msgid "Writing a script that can access other nodes in the scene." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:100 msgid "" "Before continuing, please make sure to read the :ref:" "`GDScript` reference. It's a language designed to be simple, " "and the reference is short, so it will not take more than a few minutes to " "get an overview of the concepts." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:105 #: ../../docs/tutorials/physics/kinematic_character_2d.rst:79 #: ../../docs/tutorials/animation/introduction_2d.rst:109 msgid "Scene setup" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:107 msgid "" "Use the \"Add Child Node\" dialogue accessed from the Scene tab (or by " "pressing :kbd:`Ctrl + A`) to create a hierarchy with the following nodes:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:110 msgid "Panel" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:112 #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:144 msgid "Label" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:113 msgid "Button" msgstr "כפתור" #: ../../docs/getting_started/step_by_step/scripting.rst:115 msgid "The scene tree should look like this:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:119 msgid "" "Use the 2D editor to position and resize the Button and Label so that they " "look like the image below. You can set the text from the Inspector tab." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:124 msgid "Finally, save the scene with a name such as ``sayhello.tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:129 msgid "Adding a script" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:131 msgid "" "Right click on the Panel node, then select \"Attach Script\" from the " "context menu:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:136 msgid "" "The script creation dialog will pop up. This dialog allows you to set the " "script's language, class name, and other relevant options." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:139 msgid "" "In GDScript, the file itself represents the class, so the class name field " "is not editable." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:142 msgid "" "The node we're attaching the script to is a panel, so the Inherits field " "will automatically be filled in with \"Panel\". This is what we want, as the " "script's goal is to extend the functionality of our panel node." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:146 msgid "Finally, enter a path name for the script and select Create:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:150 msgid "" "The script will then be created and added to the node. You can see this as " "an \"Open script\" icon next to the node in the Scene tab, as well as in the " "script property under Inspector:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:156 msgid "" "To edit the script, select either of these buttons, both of which are " "highlighted in the above image. This will bring you to the script editor, " "where a default template will be included:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:161 msgid "" "There's not much there. The ``_ready()`` function is called when the node, " "and all its children, enters the active scene. **Note:** ``_ready()`` is not " "the constructor; the constructor is instead ``_init()``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:166 msgid "The role of the script" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:168 msgid "" "A script adds behavior to a node. It is used to control how the node " "functions as well as how it interacts with other nodes: children, parent, " "siblings, and so on. The local scope of the script is the node. In other " "words, the script inherits the functions provided by that node." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:179 msgid "Handling a signal" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:181 msgid "" "Signals are \"emitted\" when some specific kind of action happens, and they " "can be connected to any function of any script instance. Signals are used " "mostly in GUI nodes, although other nodes have them too, and you can even " "define custom signals in your own scripts." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:186 msgid "" "In this step, we'll connect the \"pressed\" signal to a custom function. " "Forming connections is the first part and defining the custom function is " "the second part. For the first part, Godot provides two ways to create " "connections: through a visual interface the editor provides or through code." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:191 msgid "" "While we will use the code method for the remainder of this tutorial series, " "let's cover how the editor interface works for future reference." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:194 msgid "" "Select the Button node in the scene tree and then select the \"Node\" tab. " "Next, make sure that you have \"Signals\" selected." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:199 msgid "" "If you then select \"pressed()\" under \"BaseButton\" and click the " "\"Connect...\" button in the bottom right, you'll open up the connection " "creation dialogue." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:204 msgid "" "The top of the dialogue displays a list of your scene's nodes with the " "emitting node's name highlighted in blue. Select the \"Panel\" node here." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:207 msgid "" "The bottom of the dialogue shows the name of the method that will be " "created. By default, the method name will contain the emitting node's name " "(\"Button\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:211 msgid "" "And that concludes the guide on how to use the visual interface. However, " "this is a scripting tutorial, so for the sake of learning, let's dive into " "the manual process!" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:215 msgid "" "To accomplish this, we will introduce a function that is probably the most " "used by Godot programmers: :ref:`Node.get_node() " "`. This function uses paths to fetch nodes " "anywhere in the scene, relative to the node that owns the script." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:220 msgid "" "For the sake of convenience, delete everything underneath ``extends Panel``. " "You will fill out the rest of the script manually." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:223 msgid "" "Because the Button and Label are siblings under the Panel where the script " "is attached, you can fetch the Button by typing the following underneath the " "``_ready()`` function:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:240 msgid "Next, write a function which will be called when the button is pressed:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:255 msgid "" "Finally, connect the button's \"pressed\" signal to ``_on_Button_pressed()`` " "by using :ref:`Object.connect() `." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:271 msgid "The final script should look like this:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:304 msgid "" "Run the scene and press the button. You should get the following result:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:308 msgid "Why, hello there! Congratulations on scripting your first scene." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:312 msgid "" "A common misunderstanding regarding this tutorial is how ``get_node(path)`` " "works. For a given node, ``get_node(path)`` searches its immediate children. " "In the above code, this means that Button must be a child of Panel. If " "Button were instead a child of Label, the code to obtain it would be:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:330 msgid "Also, remember that nodes are referenced by name, not by type." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:334 msgid "" "The right-hand panel of the connect dialogue is for binding specific values " "to the connected function's parameters. You can add and remove values of " "different types." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:338 msgid "" "The code approach also enables this with a 4th ``Array`` parameter that is " "empty by default. Feel free to read up on the ``Object.connect`` method for " "more information." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:4 msgid "Scripting (continued)" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:7 msgid "Processing" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:9 msgid "" "Several actions in Godot are triggered by callbacks or virtual functions, so " "there is no need to write code that runs all the time." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:12 msgid "" "However, it is still common to need a script to be processed on every frame. " "There are two types of processing: idle processing and physics processing." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:16 msgid "" "Idle processing is activated when the method :ref:`Node._process() " "` is found in a script. It can be turned off and " "on with the :ref:`Node.set_process() ` " "function." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:20 msgid "This method will be called every time a frame is drawn:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:36 msgid "" "It's important to bear in mind that the frequency with which ``_process()`` " "will be called depends on how many frames per second (FPS) your application " "is running at. This rate can vary over time and devices." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:40 msgid "" "To help manage this variability, the ``delta`` parameter contains the time " "elapsed in seconds as a floating-point number since the previous call to " "``_process()``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:43 msgid "" "This parameter can be used to make sure things always take the same amount " "of time, regardless of the game's FPS." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:46 msgid "" "For example, movement is often multiplied with a time delta to make movement " "speed both constant and independent of the frame rate." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:49 msgid "" "Physics processing with ``_physics_process()`` is similar, but it should be " "used for processes that must happen before each physics step, such as " "controlling a character. It always runs before a physics step and it is " "called at fixed time intervals: 60 times per second by default. You can " "change the interval from the Project Settings, under Physics -> Common -> " "Physics Fps." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:55 msgid "" "The function ``_process()``, however, is not synced with physics. Its frame " "rate is not constant and is dependent on hardware and game optimization. Its " "execution is done after the physics step on single-threaded games." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:58 msgid "" "A simple way to see the ``_process()`` function at work is to create a scene " "with a single Label node, with the following script:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:85 msgid "Which will show a counter increasing each frame." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:88 msgid "Groups" msgstr "קבוצות" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " "for organizing large scenes. There are two ways to add nodes to groups. The " "first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 msgid "" "And the second way is from code. The following script would add the current " "node to the ``enemies`` group as soon as it appeared in the scene tree." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:115 msgid "" "This way, if the player is discovered sneaking into a secret base, all " "enemies can be notified about its alarm sounding by using :ref:`SceneTree." "call_group() `:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:132 msgid "" "The above code calls the function ``player_was_discovered`` on every member " "of the group ``enemies``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:135 msgid "" "It is also possible to get the full list of ``enemies`` nodes by calling :" "ref:`SceneTree.get_nodes_in_group() " "`:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:148 msgid "" "The :ref:`SceneTree ` class provides many useful methods, " "like interacting with scenes, their node hierarchy and groups of nodes. It " "allows you to easily switch scenes or reload them, to quit the game or pause " "and unpause it. It even comes with interesting signals. So check it out if " "you have some time!" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:156 #: ../../docs/tutorials/gui/custom_gui_controls.rst:157 msgid "Notifications" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:158 msgid "" "Godot has a system of notifications. These are usually not needed for " "scripting, as it's too low-level and virtual functions are provided for most " "of them. It's just good to know they exist. For example, you may add an :ref:" "`Object._notification() ` function in " "your script:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:193 msgid "" "The documentation of each class in the :ref:`Class Reference ` shows the notifications it can receive. However, in most cases " "GDScript provides simpler overridable functions." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:198 msgid "Overridable functions" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:200 msgid "" "Such overridable functions, which are described as follows, can be applied " "to nodes:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:272 msgid "" "As mentioned before, it's better to use these functions instead of the " "notification system." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:276 msgid "Creating nodes" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:278 msgid "" "To create a node from code, call the ``.new()`` method, like for any other " "class-based datatype. For example:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:302 msgid "" "To delete a node, be it inside or outside the scene, ``free()`` must be used:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:318 msgid "" "When a node is freed, it also frees all its child nodes. Because of this, " "manually deleting nodes is much simpler than it appears. Free the base node " "and everything else in the subtree goes away with it." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:322 msgid "" "A situation might occur where we want to delete a node that is currently " "\"blocked\", because it is emitting a signal or calling a function. This " "will crash the game. Running Godot with the debugger will often catch this " "case and warn you about it." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:327 msgid "" "The safest way to delete a node is by using :ref:`Node.queue_free() " "`. This erases the node safely during idle." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:345 #: ../../docs/tutorials/misc/running_code_in_the_editor.rst:128 msgid "Instancing scenes" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:347 msgid "" "Instancing a scene from code is done in two steps. The first one is to load " "the scene from your hard drive:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:360 msgid "" "Preloading it can be more convenient, as it happens at parse time (GDScript " "only):" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:368 msgid "" "But ``scene`` is not yet a node. It's packed in a special resource called :" "ref:`PackedScene `. To create the actual node, the " "function :ref:`PackedScene.instance() ` " "must be called. This will return the tree of nodes that can be added to the " "active scene:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:386 msgid "" "The advantage of this two-step process is that a packed scene may be kept " "loaded and ready to use so that you can create as many instances as desired. " "This is especially useful to quickly instance several enemies, bullets, and " "other entities in the active scene." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:394 msgid "Register scripts as classes" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:396 msgid "" "Godot has a \"Script Class\" feature to register individual scripts with the " "Editor. By default, you can only access unnamed scripts by loading the file " "directly." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:400 msgid "" "You can name a script and register it as a type in the editor with the " "``class_name`` keyword followed by the class's name. You may add a comma and " "an optional path to an image to use as an icon. You will then find your new " "type in the Node or Resource creation dialog." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:422 msgid "In Godot 3.1:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:424 msgid "" "Only GDScript and NativeScript, i.e., C++ and other GDNative-powered " "languages, can register scripts." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:425 msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:1 #: ../../docs/tutorials/misc/instancing_with_signals.rst:1 #, fuzzy msgid "Signal" msgstr "אותות" #: ../../docs/getting_started/step_by_step/signals.rst:7 #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1296 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:484 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:696 #: ../../docs/development/cpp/object_class.rst:214 msgid "Signals" msgstr "אותות" #: ../../docs/getting_started/step_by_step/signals.rst:12 msgid "" "Signals are Godot's version of the *observer* pattern. They allow a node to " "send out a message that other nodes can listen for and respond to. For " "example, rather than continuously checking a button to see if it's being " "pressed, the button can emit a signal when it's pressed." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:17 msgid "" "You can read more about the observer pattern here: https://" "gameprogrammingpatterns.com/observer.html" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:19 msgid "" "Signals are a way to *decouple* your game objects, which leads to better " "organized and more manageable code. Instead of forcing game objects to " "expect other objects to always be present, they can instead emit signals " "that all interested objects can subscribe to and respond to." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:24 msgid "" "Below you can see some examples of how you can use signals in your own " "projects." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:27 msgid "Timer example" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:29 msgid "" "To see how signals work, let's try using a :ref:`Timer ` node. " "Create a new scene with a Node2D and two children: a Timer and a :ref:" "`Sprite `. In the Scene dock, rename Node2D to TimerExample." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:33 msgid "" "For the Sprite's texture, you can use the Godot icon, or any other image you " "like. Do so by selecting ``Load`` in the Sprite's Texture attribute drop-" "down menu. Attach a script to the root node, but don't add any code to it " "yet." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:37 msgid "Your scene tree should look like this:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:41 msgid "" "In the Timer node's properties, check the \"On\" box next to *Autostart*. " "This will cause the timer to start automatically when you run the scene. You " "can leave the *Wait Time* at 1 second." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:45 msgid "" "Next to the \"Inspector\" tab is a tab labeled \"Node\". Click on this tab " "and you'll see all of the signals that the selected node can emit. In the " "case of the Timer node, the one we're concerned with is \"timeout\". This " "signal is emitted whenever the Timer reaches ``0``." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:52 msgid "" "Click on the \"timeout()\" signal and click \"Connect...\" at the bottom of " "the signals panel. You'll see the following window, where you can define how " "you want to connect the signal:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:58 msgid "" "On the left side, you'll see the nodes in your scene and can select the node " "that you want to \"listen\" for the signal. Note that the Timer node is " "blue, this is a visual indication that it's the node that is emitting the " "signal. Select the root node." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:63 msgid "" "The target node *must* have a script attached or you'll receive an error " "message." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:66 msgid "" "If you toggle the Advanced menu, you'll see on the right side that you can " "bind an arbitrary number of arguments of (possibly) different types. This " "can be useful when you have more than one signal connected to the same " "method, as each signal propagation will result in different values for those " "extra call arguments." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:70 msgid "" "On the bottom of the window is a field labeled \"Receiver Method\". This is " "the name of the function in the target node's script that you want to use. " "By default, Godot will create this function using the naming convention " "``_on__`` but you can change it if you wish." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:75 msgid "" "Click \"Connect\" and you'll see that the function has been created in the " "script:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:96 msgid "" "Now we can replace the placeholder code with whatever code we want to run " "when the signal is received. Let's make the Sprite blink:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:121 msgid "" "Run the scene and you'll see the Sprite blinking on and off every second. " "You can change the Timer's *Wait Time* property to alter this." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:125 msgid "Connecting signals in code" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:127 msgid "" "You can also make the signal connection in code rather than with the editor. " "This is usually necessary when you're instancing nodes via code and so you " "can't use the editor to make the connection." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:131 msgid "" "First, disconnect the signal by selecting the connection in the Timer's " "\"Node\" tab and clicking disconnect." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:136 msgid "" "To make the connection in code, we can use the ``connect`` function. We'll " "put it in ``_ready()`` so that the connection will be made on run. The " "syntax of the function is ``.connect(, " ", )``. Here is the code for our Timer " "connection:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:171 #, fuzzy msgid "Custom signals" msgstr "אותות" #: ../../docs/getting_started/step_by_step/signals.rst:173 msgid "You can also declare your own custom signals in Godot:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:192 msgid "" "Once declared, your custom signals will appear in the Inspector and can be " "connected in the same way as a node's built-in signals." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:195 msgid "To emit a signal via code, use the ``emit_signal`` function:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:222 msgid "" "A signal can also optionally declare one or more arguments. Specify the " "argument names between parentheses:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:243 msgid "" "The signal arguments show up in the editor's node dock, and Godot can use " "them to generate callback functions for you. However, you can still emit any " "number of arguments when you emit signals. So it's up to you to emit the " "correct values." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:248 msgid "" "To pass values, add them as the second argument to the ``emit_signal`` " "function:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:278 msgid "" "Many of Godot's built-in node types provide signals you can use to detect " "events. For example, an :ref:`Area2D ` representing a coin " "emits a ``body_entered`` signal whenever the player's physics body enters " "its collision shape, allowing you to know when the player collected it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:283 msgid "" "In the next section, :ref:`doc_your_first_game`, you'll build a complete " "game including several uses of signals to connect different game components." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:4 msgid "Your first game" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:7 #: ../../docs/getting_started/step_by_step/exporting.rst:7 #: ../../docs/tutorials/animation/introduction_2d.rst:7 #: ../../docs/tutorials/assetlib/using_assetlib.rst:10 msgid "Overview" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:9 msgid "" "This tutorial will guide you through making your first Godot project. You " "will learn how the Godot editor works, how to structure a project, and how " "to build a 2D game." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:13 msgid "" "This project is an introduction to the Godot engine. It assumes that you " "have some programming experience already. If you're new to programming " "entirely, you should start here: :ref:`doc_scripting`." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:18 msgid "" "The game is called \"Dodge the Creeps!\". Your character must move and avoid " "the enemies for as long as possible. Here is a preview of the final result:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:24 msgid "" "**Why 2D?** 3D games are much more complex than 2D ones. You should stick to " "2D until you have a good understanding of the game development process and " "how to use Godot." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:29 #: ../../docs/getting_started/workflow/project_setup/index.rst:2 #: ../../docs/tutorials/2d/using_tilemaps.rst:21 #: ../../docs/tutorials/misc/state_design_pattern.rst:233 msgid "Project setup" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:31 msgid "" "Launch Godot and create a new project. Then, download :download:" "`dodge_assets.zip `. This contains the images and " "sounds you'll be using to make the game. Unzip these files in your project " "folder." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:36 msgid "" "For this tutorial, we will assume you are familiar with the Godot editor. If " "you haven't read :ref:`doc_scenes_and_nodes`, do so now for an explanation " "of setting up a project and using the editor." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:40 msgid "" "This game is designed for portrait mode, so we need to adjust the size of " "the game window. Click on Project -> Project Settings -> Display -> Window " "and set \"Width\" to ``480`` and \"Height\" to ``720``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:44 msgid "" "Also in this section, under the \"Stretch\" options, set ``Mode`` to \"2d\" " "and ``Aspect`` to \"keep\". This ensures that the game scales consistently " "on different sized screens." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:49 msgid "Organizing the project" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:51 msgid "" "In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and " "``HUD``, which we will combine into the game's ``Main`` scene. In a larger " "project, it might be useful to create folders to hold the various scenes and " "their scripts, but for this relatively small game, you can save your scenes " "and scripts in the project's root folder, identified by ``res://``. You can " "see your project folders in the FileSystem Dock in the lower left corner:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:62 msgid "Player scene" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:64 msgid "" "The first scene we will make defines the ``Player`` object. One of the " "benefits of creating a separate Player scene is that we can test it " "separately, even before we've created other parts of the game." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:69 msgid "Node structure" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:71 msgid "" "To begin, we need to choose a root node for the player object. As a general " "rule, a scene's root node should reflect the object's desired functionality " "- what the object *is*. Click the \"Other Node\" button and add an :ref:" "`Area2D ` node to the scene." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:78 msgid "" "Godot will display a warning icon next to the node in the scene tree. You " "can ignore it for now. We will address it later." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:81 msgid "" "With ``Area2D`` we can detect objects that overlap or run into the player. " "Change the node's name to ``Player`` by double-clicking on it. Now that " "we've set the scene's root node, we can add additional nodes to give it more " "functionality." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:86 msgid "" "Before we add any children to the ``Player`` node, we want to make sure we " "don't accidentally move or resize them by clicking on them. Select the node " "and click the icon to the right of the lock; its tooltip says \"Makes sure " "the object's children are not selectable.\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:93 msgid "" "Save the scene. Click Scene -> Save, or press :kbd:`Ctrl + S` on Windows/" "Linux or :kbd:`Cmd + S` on macOS." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:95 msgid "For this project, we will be following the Godot naming conventions." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:97 msgid "" "**GDScript**: Classes (nodes) use PascalCase, variables and functions use " "snake_case, and constants use ALL_CAPS (See :ref:`doc_gdscript_styleguide`)." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:101 msgid "" "**C#**: Classes, export variables and methods use PascalCase, private fields " "use _camelCase, local variables and parameters use camelCase (See :ref:" "`doc_c_sharp_styleguide`). Be careful to type the method names precisely " "when connecting signals." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:108 #, fuzzy msgid "Sprite animation" msgstr "אנימציות" #: ../../docs/getting_started/step_by_step/your_first_game.rst:110 msgid "" "Click on the ``Player`` node and add an :ref:`AnimatedSprite " "` node as a child. The ``AnimatedSprite`` will handle " "the appearance and animations for our player. Notice that there is a warning " "symbol next to the node. An ``AnimatedSprite`` requires a :ref:`SpriteFrames " "` resource, which is a list of the animations it can " "display. To create one, find the ``Frames`` property in the Inspector and " "click \"[empty]\" -> \"New SpriteFrames\". Click again to open the " "\"SpriteFrames\" panel:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:121 msgid "" "On the left is a list of animations. Click the \"default\" one and rename it " "to \"walk\". Then click the \"New Animation\" button to create a second " "animation named \"up\". Find the player images in the \"FileSystem\" tab - " "they're in the ``art`` folder you unzipped earlier. Drag the two images for " "each animation, named ``playerGrey_up[1/2]`` and ``playerGrey_walk[1/2]``, " "into the \"Animation Frames\" side of the panel for the corresponding " "animation:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:130 msgid "" "The player images are a bit too large for the game window, so we need to " "scale them down. Click on the ``AnimatedSprite`` node and set the ``Scale`` " "property to ``(0.5, 0.5)``. You can find it in the Inspector under the " "``Node2D`` heading." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:137 msgid "" "Finally, add a :ref:`CollisionShape2D ` as a child " "of ``Player``. This will determine the player's \"hitbox\", or the bounds of " "its collision area. For this character, a ``CapsuleShape2D`` node gives the " "best fit, so next to \"Shape\" in the Inspector, click \"[empty]\"\" -> " "\"New CapsuleShape2D\". Using the two size handles, resize the shape to " "cover the sprite:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:146 msgid "When you're finished, your ``Player`` scene should look like this:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:150 msgid "Make sure to save the scene again after these changes." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:153 msgid "Moving the player" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:155 msgid "" "Now we need to add some functionality that we can't get from a built-in " "node, so we'll add a script. Click the ``Player`` node and click the " "\"Attach Script\" button:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:161 msgid "" "In the script settings window, you can leave the default settings alone. " "Just click \"Create\":" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:164 msgid "" "If you're creating a C# script or other languages, select the language from " "the `language` drop down menu before hitting create." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:169 msgid "" "If this is your first time encountering GDScript, please read :ref:" "`doc_scripting` before continuing." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:172 msgid "Start by declaring the member variables this object will need:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:193 msgid "" "Using the ``export`` keyword on the first variable ``speed`` allows us to " "set its value in the Inspector. This can be handy for values that you want " "to be able to adjust just like a node's built-in properties. Click on the " "``Player`` node and you'll see the property now appears in the \"Script " "Variables\" section of the Inspector. Remember, if you change the value " "here, it will override the value written in the script." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:200 msgid "" "If you're using C#, you need to (re)build the project assemblies whenever " "you want to see new export variables or signals. This build can be manually " "triggered by clicking the word \"Mono\" at the bottom of the editor window " "to reveal the Mono Panel, then clicking the \"Build Project\" button." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:208 msgid "" "The ``_ready()`` function is called when a node enters the scene tree, which " "is a good time to find the size of the game window:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:224 msgid "" "Now we can use the ``_process()`` function to define what the player will " "do. ``_process()`` is called every frame, so we'll use it to update elements " "of our game, which we expect will change often. For the player, we need to " "do the following:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:229 msgid "Check for input." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:230 msgid "Move in the given direction." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:231 msgid "Play the appropriate animation." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:233 msgid "" "First, we need to check for input - is the player pressing a key? For this " "game, we have 4 direction inputs to check. Input actions are defined in the " "Project Settings under \"Input Map\". Here, you can define custom events and " "assign different keys, mouse events, or other inputs to them. For this demo, " "we will use the default events that are assigned to the arrow keys on the " "keyboard." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:240 msgid "" "You can detect whether a key is pressed using ``Input.is_action_pressed()``, " "which returns ``true`` if it's pressed or ``false`` if it isn't." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:302 msgid "" "We start by setting the ``velocity`` to ``(0, 0)`` - by default, the player " "should not be moving. Then we check each input and add/subtract from the " "``velocity`` to obtain a total direction. For example, if you hold ``right`` " "and ``down`` at the same time, the resulting ``velocity`` vector will be " "``(1, 1)``. In this case, since we're adding a horizontal and a vertical " "movement, the player would move *faster* diagonally than if it just moved " "horizontally." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:309 msgid "" "We can prevent that if we *normalize* the velocity, which means we set its " "*length* to ``1``, then multiply by the desired speed. This means no more " "fast diagonal movement." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:313 msgid "" "If you've never used vector math before, or need a refresher, you can see an " "explanation of vector usage in Godot at :ref:`doc_vector_math`. It's good to " "know but won't be necessary for the rest of this tutorial." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:317 msgid "" "We also check whether the player is moving so we can call ``play()`` or " "``stop()`` on the AnimatedSprite." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:320 msgid "" "``$`` is shorthand for ``get_node()``. So in the code above, ``" "$AnimatedSprite.play()`` is the same as ``get_node(\"AnimatedSprite\")." "play()``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:323 msgid "" "In GDScript, ``$`` returns the node at the relative path from the current " "node, or returns ``null`` if the node is not found. Since AnimatedSprite is " "a child of the current node, we can use ``$AnimatedSprite``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:326 msgid "" "Now that we have a movement direction, we can update the player's position. " "We can also use ``clamp()`` to prevent it from leaving the screen. " "*Clamping* a value means restricting it to a given range. Add the following " "to the bottom of the ``_process`` function (make sure it's not indented " "under the `else`):" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:347 msgid "" "The `delta` parameter in the `_process()` function refers to the *frame " "length* - the amount of time that the previous frame took to complete. Using " "this value ensures that your movement will remain consistent even if the " "frame rate changes." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:352 msgid "" "Click \"Play Scene\" (``F6``) and confirm you can move the player around the " "screen in all directions." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:355 msgid "If you get an error in the \"Debugger\" panel that says" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:357 msgid "" "``Attempt to call function 'play' in base 'null instance' on a null " "instance``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:359 msgid "" "this likely means you spelled the name of the AnimatedSprite node wrong. " "Node names are case-sensitive and ``$NodeName`` must match the name you see " "in the scene tree." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:364 #, fuzzy msgid "Choosing animations" msgstr "אנימציות" #: ../../docs/getting_started/step_by_step/your_first_game.rst:366 msgid "" "Now that the player can move, we need to change which animation the " "AnimatedSprite is playing based on its direction. We have the \"walk\" " "animation, which shows the player walking to the right. This animation " "should be flipped horizontally using the ``flip_h`` property for left " "movement. We also have the \"up\" animation, which should be flipped " "vertically with ``flip_v`` for downward movement. Let's place this code at " "the end of the ``_process()`` function:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:401 msgid "" "The boolean assignments in the code above are a common shorthand for " "programmers. Since we're doing a comparison test (boolean) and also " "*assigning* a boolean value, we can do both at the same time. Consider this " "code versus the one-line boolean assignment above:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:425 msgid "" "Play the scene again and check that the animations are correct in each of " "the directions." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:428 msgid "" "A common mistake here is to type the names of the animations wrong. The " "animation names in the SpriteFrames panel must match what you type in the " "code. If you named the animation ``\"Walk\"``, you must also use a capital " "\"W\" in the code." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:433 msgid "" "When you're sure the movement is working correctly, add this line to " "``_ready()``, so the player will be hidden when the game starts:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:446 msgid "Preparing for collisions" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:448 msgid "" "We want ``Player`` to detect when it's hit by an enemy, but we haven't made " "any enemies yet! That's OK, because we're going to use Godot's *signal* " "functionality to make it work." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:452 msgid "Add the following at the top of the script, after ``extends Area2D``:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:466 msgid "" "This defines a custom signal called \"hit\" that we will have our player " "emit (send out) when it collides with an enemy. We will use ``Area2D`` to " "detect the collision. Select the ``Player`` node and click the \"Node\" tab " "next to the Inspector tab to see the list of signals the player can emit:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:473 msgid "" "Notice our custom \"hit\" signal is there as well! Since our enemies are " "going to be ``RigidBody2D`` nodes, we want the ``body_entered(body: Node)`` " "signal. This signal will be emitted when a body contacts the player. Click " "\"Connect..\" and the \"Connect a Signal\" window appears. We don't need to " "change any of these settings so click \"Connect\" again. Godot will " "automatically create a function in your player's script." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:482 msgid "" "Note the green icon indicating that a signal is connected to this function. " "Add this code to the function:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:502 msgid "" "Each time an enemy hits the player, the signal is going to be emitted. We " "need to disable the player's collision so that we don't trigger the ``hit`` " "signal more than once." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:506 msgid "" "Disabling the area's collision shape can cause an error if it happens in the " "middle of the engine's collision processing. Using ``set_deferred()`` tells " "Godot to wait to disable the shape until it's safe to do so." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:510 msgid "" "The last piece is to add a function we can call to reset the player when " "starting a new game." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:531 msgid "Enemy scene" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:533 msgid "" "Now it's time to make the enemies our player will have to dodge. Their " "behavior will not be very complex: mobs will spawn randomly at the edges of " "the screen, choose a random direction, and move in a straight line." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:537 msgid "" "We'll create a ``Mob`` scene, which we can then *instance* to create any " "number of independent mobs in the game." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:540 msgid "See :ref:`doc_instancing` to learn more about instancing." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:543 #, fuzzy msgid "Node setup" msgstr "נתיב" #: ../../docs/getting_started/step_by_step/your_first_game.rst:545 msgid "Click Scene -> New Scene and add the following nodes:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:547 msgid ":ref:`RigidBody2D ` (named ``Mob``)" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:549 msgid ":ref:`AnimatedSprite `" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:550 msgid ":ref:`CollisionShape2D `" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:551 msgid ":ref:`VisibilityNotifier2D `" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:553 msgid "" "Don't forget to set the children so they can't be selected, like you did " "with the Player scene." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:556 msgid "" "In the :ref:`RigidBody2D ` properties, set ``Gravity " "Scale`` to ``0``, so the mob will not fall downward. In addition, under the " "``PhysicsBody2D`` section, click the ``Mask`` property and uncheck the first " "box. This will ensure the mobs do not collide with each other." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:563 msgid "" "Set up the :ref:`AnimatedSprite ` like you did for the " "player. This time, we have 3 animations: ``fly``, ``swim``, and ``walk``. " "There are two images for each animation in the art folder." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:567 msgid "Adjust the \"Speed (FPS)\" to ``3`` for all animations." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:571 msgid "Set the ``Playing`` property in the Inspector to “On”." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:573 msgid "" "We'll select one of these animations randomly so that the mobs will have " "some variety." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:575 msgid "" "Like the player images, these mob images need to be scaled down. Set the " "``AnimatedSprite``'s ``Scale`` property to ``(0.75, 0.75)``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:578 msgid "" "As in the ``Player`` scene, add a ``CapsuleShape2D`` for the collision. To " "align the shape with the image, you'll need to set the ``Rotation Degrees`` " "property to ``90`` (under \"Transform\" in the Inspector)." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:582 #, fuzzy msgid "Save the scene." msgstr "יצירת תוכן" #: ../../docs/getting_started/step_by_step/your_first_game.rst:585 #, fuzzy msgid "Enemy script" msgstr "תיאור" #: ../../docs/getting_started/step_by_step/your_first_game.rst:587 msgid "Add a script to the ``Mob`` and add the following member variables:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:611 msgid "" "When we spawn a mob, we'll pick a random value between ``min_speed`` and " "``max_speed`` for how fast each mob will move (it would be boring if they " "were all moving at the same speed)." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:615 msgid "" "Now let's look at the rest of the script. In ``_ready()`` we randomly choose " "one of the three animation types:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:637 msgid "" "First, we get the list of animation names from the AnimatedSprite's " "``frames`` property. This returns an Array containing all three animation " "names: ``[\"walk\", \"swim\", \"fly\"]``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:641 msgid "" "We then need to pick a random number between ``0`` and ``2`` to select one " "of these names from the list (array indices start at ``0``). ``randi() % n`` " "selects a random integer between ``0`` and ``n-1``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:645 msgid "" "You must use ``randomize()`` if you want your sequence of \"random\" numbers " "to be different every time you run the scene. We're going to use " "``randomize()`` in our ``Main`` scene, so we won't need it here." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:649 msgid "" "The last piece is to make the mobs delete themselves when they leave the " "screen. Connect the ``screen_exited()`` signal of the " "``VisibilityNotifier2D`` node and add this code:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:666 msgid "This completes the `Mob` scene." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:669 msgid "Main scene" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:671 msgid "" "Now it's time to bring it all together. Create a new scene and add a :ref:" "`Node ` named ``Main``. Click the \"Instance\" button and select " "your saved ``Player.tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:677 msgid "" "Now, add the following nodes as children of ``Main``, and name them as shown " "(values are in seconds):" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:680 msgid "" ":ref:`Timer ` (named ``MobTimer``) - to control how often mobs " "spawn" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:681 msgid "" ":ref:`Timer ` (named ``ScoreTimer``) - to increment the score " "every second" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:682 msgid "" ":ref:`Timer ` (named ``StartTimer``) - to give a delay before " "starting" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:683 msgid "" ":ref:`Position2D ` (named ``StartPosition``) - to indicate " "the player's start position" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:685 msgid "" "Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:688 msgid "``MobTimer``: ``0.5``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:689 msgid "``ScoreTimer``: ``1``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:690 msgid "``StartTimer``: ``2``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:692 msgid "" "In addition, set the ``One Shot`` property of ``StartTimer`` to \"On\" and " "set ``Position`` of the ``StartPosition`` node to ``(240, 450)``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:696 msgid "Spawning mobs" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:698 msgid "" "The Main node will be spawning new mobs, and we want them to appear at a " "random location on the edge of the screen. Add a :ref:`Path2D " "` node named ``MobPath`` as a child of ``Main``. When you " "select ``Path2D``, you will see some new buttons at the top of the editor:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:705 msgid "" "Select the middle one (\"Add Point\") and draw the path by clicking to add " "the points at the corners shown. To have the points snap to the grid, make " "sure \"Use Grid Snap\" is selected. This option can be found to the left of " "the \"Lock\" button, appearing as a magnet next to some intersecting lines." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:712 msgid "" "Draw the path in *clockwise* order, or your mobs will spawn pointing " "*outwards* instead of *inwards*!" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:717 msgid "" "After placing point ``4`` in the image, click the \"Close Curve\" button and " "your curve will be complete." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:720 msgid "" "Now that the path is defined, add a :ref:`PathFollow2D ` " "node as a child of ``MobPath`` and name it ``MobSpawnLocation``. This node " "will automatically rotate and follow the path as it moves, so we can use it " "to select a random position and direction along the path." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:725 msgid "Your scene should look like this:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:730 msgid "Main script" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:732 msgid "" "Add a script to ``Main``. At the top of the script, we use ``export " "(PackedScene)`` to allow us to choose the Mob scene we want to instance." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:772 msgid "" "Click the ``Main`` node and you will see the ``Mob`` property in the " "Inspector under \"Script Variables\"." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:775 msgid "You can assign this property's value in two ways:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:777 msgid "" "Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` " "property ." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:779 msgid "" "Click the down arrow next to \"[empty]\" and choose \"Load\". Select ``Mob." "tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:782 msgid "" "Next, click on the Player and connect the ``hit`` signal. We want to make a " "new function named ``game_over``, which will handle what needs to happen " "when a game ends. Type \"game_over\" in the \"Receiver Method\" box at the " "bottom of the \"Connect a Signal\" window and click \"Connect\". Add the " "following code to the new function, as well as a ``new_game`` function that " "will set everything up for a new game:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:820 msgid "" "Now connect the ``timeout()`` signal of each of the Timer nodes " "(``StartTimer``, ``ScoreTimer`` , and ``MobTimer``) to the main script. " "``StartTimer`` will start the other two timers. ``ScoreTimer`` will " "increment the score by 1." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:847 msgid "" "In ``_on_MobTimer_timeout()``, we will create a mob instance, pick a random " "starting location along the ``Path2D``, and set the mob in motion. The " "``PathFollow2D`` node will automatically rotate as it follows the path, so " "we will use that to select the mob's direction as well as its position." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:853 msgid "" "Note that a new instance must be added to the scene using ``add_child()``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:901 msgid "" "Why ``PI``? In functions requiring angles, GDScript uses *radians*, not " "degrees. If you're more comfortable working with degrees, you'll need to use " "the ``deg2rad()`` and ``rad2deg()`` functions to convert between the two." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:907 #, fuzzy msgid "Testing the scene" msgstr "יצירת תוכן" #: ../../docs/getting_started/step_by_step/your_first_game.rst:909 msgid "" "Let's test the scene to make sure everything is working. Add this to " "``_ready()``:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:926 msgid "" "Let's also assign ``Main`` as our \"Main Scene\" - the one that runs " "automatically when the game launches. Press the \"Play\" button and select " "``Main.tscn`` when prompted." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:930 msgid "" "You should be able to move the player around, see mobs spawning, and see the " "player disappear when hit by a mob." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:933 msgid "" "When you're sure everything is working, remove the call to ``new_game()`` " "from ``_ready()``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:937 msgid "HUD" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:939 msgid "" "The final piece our game needs is a UI: an interface to display things like " "score, a \"game over\" message, and a restart button. Create a new scene, " "and add a :ref:`CanvasLayer ` node named ``HUD``. \"HUD\" " "stands for \"heads-up display\", an informational display that appears as an " "overlay on top of the game view." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:945 msgid "" "The :ref:`CanvasLayer ` node lets us draw our UI elements " "on a layer above the rest of the game, so that the information it displays " "isn't covered up by any game elements like the player or mobs." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:949 msgid "The HUD needs to display the following information:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:951 msgid "Score, changed by ``ScoreTimer``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:952 msgid "A message, such as \"Game Over\" or \"Get Ready!\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:953 msgid "A \"Start\" button to begin the game." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:955 msgid "" "The basic node for UI elements is :ref:`Control `. To create " "our UI, we'll use two types of :ref:`Control ` nodes: :ref:" "`Label ` and :ref:`Button `." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:959 msgid "Create the following as children of the ``HUD`` node:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:961 msgid ":ref:`Label ` named ``ScoreLabel``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:962 msgid ":ref:`Label ` named ``Message``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:963 msgid ":ref:`Button ` named ``StartButton``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:964 msgid ":ref:`Timer ` named ``MessageTimer``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:966 msgid "" "Click on the ``ScoreLabel`` and type a number into the ``Text`` field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:971 msgid "Under \"Custom Fonts\", choose \"New DynamicFont\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:975 msgid "" "Click on the \"DynamicFont\" you added, and under \"Font/Font Data\", choose " "\"Load\" and select the \"Xolonium-Regular.ttf\" file. You must also set the " "font's ``Size``. A setting of ``64`` works well." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:981 msgid "" "Once you've done this on the ``ScoreLabel``, you can click the down arrow " "next to the DynamicFont property and choose \"Copy\", then \"Paste\" it in " "the same place on the other two Control nodes." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:985 msgid "" "**Anchors and Margins:** ``Control`` nodes have a position and size, but " "they also have anchors and margins. Anchors define the origin - the " "reference point for the edges of the node. Margins update automatically when " "you move or resize a control node. They represent the distance from the " "control node's edges to its anchor. See :ref:" "`doc_design_interfaces_with_the_control_nodes` for more details." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:992 msgid "" "Arrange the nodes as shown below. Click the \"Layout\" button to set a " "Control node's layout:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:997 msgid "" "You can drag the nodes to place them manually, or for more precise " "placement, use the following settings:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1001 msgid "ScoreLabel" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1003 msgid "*Layout* : \"Top Wide\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1004 msgid "*Text* : ``0``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1005 #: ../../docs/getting_started/step_by_step/your_first_game.rst:1012 msgid "*Align* : \"Center\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1008 msgid "Message" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1010 msgid "*Layout* : \"HCenter Wide\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1011 msgid "*Text* : ``Dodge the Creeps!``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1013 msgid "*Autowrap* : \"On\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1016 msgid "StartButton" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1018 msgid "*Text* : ``Start``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1019 msgid "*Layout* : \"Center Bottom\"" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1020 msgid "*Margin* :" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1022 msgid "Top: ``-200``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1023 msgid "Bottom: ``-100``" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1025 msgid "" "On the ``MessageTimer``, set the ``Wait Time`` to ``2`` and set the ``One " "Shot`` property to \"On\"." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1028 msgid "Now add this script to ``HUD``:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1047 msgid "" "The ``start_game`` signal tells the ``Main`` node that the button has been " "pressed." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1069 msgid "" "This function is called when we want to display a message temporarily, such " "as \"Get Ready\"." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1103 msgid "" "This function is called when the player loses. It will show \"Game Over\" " "for 2 seconds, then return to the title screen and, after a brief pause, " "show the \"Start\" button." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1107 msgid "" "When you need to pause for a brief time, an alternative to using a Timer " "node is to use the SceneTree's ``create_timer()`` function. This can be very " "useful to add delays such as in the above code, where we want to wait some " "time before showing the \"Start\" button." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1125 msgid "This function is called by ``Main`` whenever the score changes." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1127 msgid "" "Connect the ``timeout()`` signal of ``MessageTimer`` and the ``pressed()`` " "signal of ``StartButton`` and add the following code to the new functions:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1155 msgid "Connecting HUD to Main" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 msgid "" "Now that we're done creating the ``HUD`` scene, go back to ``Main``. " "Instance the ``HUD`` scene in ``Main`` like you did the ``Player`` scene. " "The scene tree should look like this, so make sure you didn't miss anything:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1163 msgid "" "Now we need to connect the ``HUD`` functionality to our ``Main`` script. " "This requires a few additions to the ``Main`` scene:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1166 msgid "" "In the Node tab, connect the HUD's ``start_game`` signal to the " "``new_game()`` function of the Main node by typing \"new_game\" in the " "\"Receiver Method\" in the \"Connect a Signal\" window. Verify that the " "green connection icon now appears next to ``func new_game()`` in the script." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 msgid "" "In ``new_game()``, update the score display and show the \"Get Ready\" " "message:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1186 msgid "In ``game_over()`` we need to call the corresponding ``HUD`` function:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 msgid "" "Finally, add this to ``_on_ScoreTimer_timeout()`` to keep the display in " "sync with the changing score:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1209 msgid "" "Now you're ready to play! Click the \"Play the Project\" button. You will be " "asked to select a main scene, so choose ``Main.tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 msgid "Removing old creeps" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1215 msgid "" "If you play until \"Game Over\" and then start a new game right away, the " "creeps from the previous game may still be on the screen. It would be better " "if they all disappeared at the start of a new game. We just need a way to " "tell *all* the mobs to remove themselves. We can do this with the \"group\" " "feature." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1220 msgid "" "In the ``Mob`` scene, select the root node and click the \"Node\" tab next " "to the Inspector (the same place where you find the node's signals). Next to " "\"Signals\", click \"Groups\" and you can type a new group name and click " "\"Add\"." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1226 msgid "" "Now all mobs will be in the \"mobs\" group. We can then add the following " "line to the ``game_over()`` function in ``Main``:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1239 msgid "" "The ``call_group()`` function calls the named function on every node in a " "group - in this case we are telling every mob to delete itself." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1243 msgid "Finishing up" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1245 msgid "" "We have now completed all the functionality for our game. Below are some " "remaining steps to add a bit more \"juice\" to improve the game experience. " "Feel free to expand the gameplay with your own ideas." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1250 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1252 msgid "" "The default gray background is not very appealing, so let's change its " "color. One way to do this is to use a :ref:`ColorRect ` " "node. Make it the first node under ``Main`` so that it will be drawn behind " "the other nodes. ``ColorRect`` only has one property: ``Color``. Choose a " "color you like and select \"Layout\" -> \"Full Rect\" so that it covers the " "screen." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1258 msgid "" "You could also add a background image, if you have one, by using a " "``TextureRect`` node instead." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1262 msgid "Sound effects" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1264 msgid "" "Sound and music can be the single most effective way to add appeal to the " "game experience. In your game assets folder, you have two sound files: " "\"House In a Forest Loop.ogg\" for background music, and \"gameover.wav\" " "for when the player loses." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1269 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " "each one, click on the ``Stream`` property, select \"Load\", and choose the " "corresponding audio file." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1274 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1277 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1280 msgid "Keyboard shortcut" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1282 msgid "" "Since the game is played with keyboard controls, it would be convenient if " "we could also start the game by pressing a key on the keyboard. We can do " "this with the \"Shortcut\" property of the ``Button`` node." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1286 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " "\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEventAction\". Finally, in the " "*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1294 msgid "" "Now when the start button appears, you can either click it or press :kbd:" "`Space` to start the game." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1298 msgid "Project files" msgstr "" #: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1301 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1302 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:4 #: ../../docs/getting_started/editor/command_line_tutorial.rst:257 msgid "Exporting" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:9 msgid "" "Now that you have a working game, you probably want to share your success " "with others. However, it's not practical to ask your friends to download " "Godot just so they can open your project. Instead, you can *export* your " "project, converting it into a \"package\" that can be run by anyone." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:14 msgid "" "The way you export your game depends on what platform you are targeting. In " "this tutorial, you'll learn how to export the \"Dodge the Creeps\" game for " "a variety of platforms. First, however, we need to make some changes to the " "way the game works." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:19 msgid "" "If you haven't made \"Dodge the Creeps\" yourself yet, please read :ref:" "`doc_your_first_game` before continuing with this tutorial." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:23 msgid "Preparing the project" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:25 msgid "" "In \"Dodge the Creeps\" we used keyboard controls to move the player's " "character. This is fine if your game is being played on a PC platform, but " "on a phone or tablet, you need to support touchscreen input. Because a click " "event can be treated the same as a touch event, we'll convert the game to a " "click-and-move input style." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:31 msgid "" "By default Godot emulates mouse input from touch input. That means if " "anything is coded to happen on a mouse event, touch will trigger it as well. " "Godot can also emulate touch input from mouse clicks, which we will need to " "be able to keep playing our game on our computer after we switch to touch " "input. In the \"Project Settings\" under *Input Devices* and *Pointing*, set " "*Emulate Touch From Mouse* to \"On\"." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:39 msgid "" "We also want to ensure that the game scales consistently on different-sized " "screens, so in the project settings go to *Display*, then click on *Window*. " "In the *Stretch* options, set *Mode* to \"2d\" and *Aspect* to \"keep\"." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:43 msgid "" "Since we are already in the *Window* settings, we should also set under " "*Handheld* the *Orientation* to \"portrait\"." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:48 msgid "" "Next, we need to modify the ``Player.gd`` script to change the input method. " "We'll remove the key inputs and make the player move towards a \"target\" " "that's set by the touch (or click) event." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:52 msgid "" "Here is the full script for the player, with comments noting what we've " "changed:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:240 #, fuzzy msgid "Setting a main scene" msgstr "אנימציות" #: ../../docs/getting_started/step_by_step/exporting.rst:242 msgid "" "The main scene is the one that your game will start in. In *Project -> " "Project Settings -> Application -> Run*, set *Main Scene* to \"Main.tscn\" " "by clicking the folder icon and selecting it." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:247 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:295 #: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "Export templates" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:249 msgid "" "In order to export, you need to download the *export templates* from the " "http://godotengine.org/download. These templates are optimized versions of " "the engine without the editor pre-compiled for each platform . You can also " "download them in Godot by clicking on *Editor -> Manage Export Templates*:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:256 msgid "" "In the window that appears, you can click \"Download\" to get the template " "version that matches your version of Godot." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:261 msgid "" "If you upgrade Godot, you must download templates that match the new version " "or your exported projects may not work correctly." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:265 #, fuzzy msgid "Export presets" msgstr "ייצוא" #: ../../docs/getting_started/step_by_step/exporting.rst:267 msgid "" "Next, you can configure the export settings by clicking on *Project -> " "Export*." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:269 msgid "" "Create a new export preset by clicking \"Add...\" and selecting a platform. " "You can make as many presets as you like with different settings." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:274 msgid "" "At the bottom of the window are two buttons. \"Export PCK/ZIP\" only creates " "a packed version of your project's data. This doesn't include an executable " "so the project can't be run on its own." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:278 msgid "" "The second button, \"Export Project\", creates a complete executable version " "of your game, such as an `.apk` for Android or an `.exe` for Windows." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:281 msgid "" "In the \"Resources\" and \"Features\" tabs, you can customize how the game " "is exported for each platform. We can leave those settings alone for now." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:285 msgid "Exporting by platform" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:287 msgid "" "In this section, we'll walk through the process for each platform, including " "any additional software or requirements you'll need." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:291 msgid "PC (Linux/macOS/Windows)" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:293 msgid "" "Exporting PC platforms works the same across the three supported operating " "systems. Open the export window and click \"Add..\" to create the preset(s) " "you want to make. Then click \"Export Project\" and choose a name and " "destination folder. Choose a location *outside* of your project folder." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:298 msgid "Click \"Save\" and the engine will build the export files." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:300 msgid "" "When exporting for macOS, if you export on a macOS computer, you'll end up " "with a `.dmg` file, while using Linux or Windows produces a `.zip`. In " "either case, the compressed file contains a macOS `.app` that you can double-" "click and run." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:305 msgid "" "On Windows, if you want your exported executable to have a different icon " "than the default one, you need to change it manually. See: :ref:" "`doc_changing_application_icon_for_windows`." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:312 msgid "" "Mobile devices come with a wide variety of capabilities. In most cases, " "Godot's default settings will work, but mobile development is sometimes more " "art than science, and you may need to do some experimenting and searching " "for help in order to get everything working." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:318 msgid "" "Before you can export your project for Android, you must download the " "following software:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:321 msgid "Android SDK: https://developer.android.com/studio/" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:322 msgid "" "Open JDK(version 8 is required, more recent versions won't work): https://" "adoptopenjdk.net/index.html" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:324 msgid "" "When you run Android Studio for the first time, click on *Configure -> SDK " "Manager* and install \"Android SDK Platform Tools\". This installs the `adb` " "command-line tool that Godot uses to communicate with your device." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:328 msgid "" "Next, create a debug keystore by running the following command on your " "system's command line:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:335 msgid "" "Click on *Editor -> Editor Settings* in Godot and select the *Export/" "Android* section. Here, you need to set the paths to the Android SDK " "applications on your system and the location of the keystore you just " "created." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:341 msgid "" "Now you're ready to export. Click on *Project -> Export* and add a preset " "for Android (see above). Select the Android Presets and under *Options* go " "to *Screen* and set *Orientation* to \"Portrait\"." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:345 msgid "" "Click the \"Export Project\" button and Godot will build an APK you can " "download on your device. To do this on the command line, use the following:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:352 msgid "" "Your device may need to be in *developer mode*. Consult your device's " "documentation for details." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:355 msgid "" "If your system supports it, connecting a compatible Android device will " "cause a \"One-click Deploy\" button to appear in Godot's playtest button " "area:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:360 msgid "" "Clicking this button builds the APK and copies it onto your device in one " "step." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:365 msgid "" "In order to build your game for iOS, you must have a computer running macOS " "with Xcode installed." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:368 msgid "" "Before exporting, there are some settings that you *must* complete for the " "project to export successfully. First, the \"App Store Team Id\", which you " "can find by logging in to your Apple developer account and looking in the " "\"Membership\" section." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:372 msgid "You must also provide icons and splash screen images as shown below:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:376 msgid "Click \"Export Project\" and select a destination folder." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:378 msgid "" "Once you have successfully exported the project, you'll find the following " "folders and files have been created in your selected location:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:383 msgid "" "You can now open the project in Xcode and build the project for iOS. Xcode " "build procedure is beyond the scope of this tutorial. See https://help.apple." "com/xcode/mac/current/#/devc8c2a6be1 for more information." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:389 msgid "HTML5 (web)" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:391 msgid "" "Click \"Export Project\" on the HTML5 preset. We don't need to change any of " "the default settings." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:394 msgid "" "When the export is complete, you'll have a folder containing the following " "files:" msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:399 msgid "" "Viewing the `.html` file in your browser lets you play the game. However, " "you can't open the file directly, it needs to be served by a web server. If " "you don't have one set up on your computer, you can search online to find " "suggestions for your specific OS." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:404 msgid "" "Point your browser at the URL where you've placed the html file. You may " "have to wait a few moments while the game loads before you see the start " "screen." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:409 msgid "" "The console window beneath the game tells you if anything goes wrong. You " "can disable it by setting \"Export With Debug\" off when you export the " "project." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:414 msgid "" "While WASM is supported in all major browsers, it is still an emerging " "technology and you may find some things that don't work. Make sure you have " "updated your browser to the most recent version, and report any bugs you " "find at the `Godot GitHub repository `_." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:4 msgid "Godot's design philosophy" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:6 msgid "Now that you've gotten your hands wet, let's talk about Godot's design." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:8 msgid "" "**Every game engine is different and fits different needs.** Not only do " "they offer a range of features, but the design of each engine is unique. " "This leads to different workflows and different ways to form your games' " "structures. This all stems from their respective design philosophies." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:13 msgid "" "This page is here to help you understand how Godot works, starting with some " "of its core pillars. It is not a list of available features, nor is it an " "engine comparison. To know if any engine can be a good fit for your project, " "you need to try it out for yourself and understand its design and " "limitations." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:19 msgid "" "Please watch `Discover Godot 3, the Free game engine `_ if you're looking for an overview of the engine's features." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:23 msgid "Object-oriented design and composition" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:25 msgid "" "Godot embraces object-oriented design at its core with its flexible scene " "system and Node hierarchy. It tries to stay away from strict programming " "patterns to offer an intuitive way to structure your game." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:29 msgid "" "For one, Godot lets you **compose or aggregate** scenes. It's like nested " "prefabs: you can create a BlinkingLight scene and a BrokenLantern scene that " "uses the BlinkingLight. Then, create a city filled with BrokenLanterns. " "Change the BlinkingLight's color, save, and all the BrokenLanterns in the " "city will update instantly." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:36 msgid "On top of that, you can **inherit** from any scene." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:38 msgid "" "A Godot scene could be a Weapon, a Character, an Item, a Door, a Level, part " "of a level… anything you'd like. It works like a class in pure code, except " "you're free to design it by using the editor, using only the code, or mixing " "and matching the two." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:43 msgid "" "It's different from prefabs you find in several 3D engines, as you can then " "inherit from and extend those scenes. You may create a Magician that extends " "your Character. Modify the Character in the editor and the Magician will " "update as well. It helps you build your projects so that their structure " "matches the game's design." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:49 #: ../../docs/tutorials/assetlib/using_assetlib.rst:16 #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:82 msgid "|image0|" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:51 msgid "" "Also note that Godot offers many different types of objects called nodes, " "each with a specific purpose. Nodes are part of a tree and always inherit " "from their parents up to the Node class. Although the engine does feature " "components like collision shapes, they're the exception, not the norm." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:57 #: ../../docs/tutorials/assetlib/using_assetlib.rst:48 msgid "|image1|" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:59 msgid "" "Sprite is a Node2D, a CanvasItem and a Node. It has all the properties and " "features of its three parent classes, like transforms or the ability to draw " "custom shapes and render with a custom shader." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:64 msgid "All-inclusive package" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:66 msgid "" "Godot tries to provide its own tools to answer most common needs. It has a " "dedicated scripting workspace, an animation editor, a tilemap editor, a " "shader editor, a debugger, a profiler, the ability to hot-reload locally and " "on remote devices, etc." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:71 #: ../../docs/tutorials/assetlib/using_assetlib.rst:58 msgid "|image2|" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:73 msgid "" "The goal is to offer a full package to create games and a continuous user " "experience. You can still work with external programs as long as there is an " "import plugin for it. Or you can create one, like the `Tiled Map Importer " "`__." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:78 msgid "" "That is also partly why Godot offers its own programming languages GDscript " "and VisualScript, along with C#. They're designed for the needs of game " "developers and game designers, and they're tightly integrated in the engine " "and the editor." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:83 msgid "" "GDscript lets you write simple code using Python-like syntax, yet it detects " "types and offers a static language's quality of auto-completion. It is also " "optimized for gameplay code with built-in types like Vectors and Colors." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:87 msgid "" "Note that with GDNative, you can write high-performance code using compiled " "languages like C, C++, Rust, or Python (using the Cython compiler) without " "recompiling the engine." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:91 #: ../../docs/tutorials/assetlib/using_assetlib.rst:81 msgid "|image3|" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:93 msgid "" "*VisualScript is a node-based programming language that integrates well in " "the editor. You can drag and drop nodes or resources into the graph to " "create new code blocks.*" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:97 msgid "" "Note that the 3D workspace doesn't feature as many tools as the 2D " "workspace. You'll need external programs or add-ons to edit terrains, " "animate complex characters, and so on. Godot provides a complete API to " "extend the editor's functionality using game code. See `The Godot editor is " "a Godot game`_ below." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:102 #: ../../docs/tutorials/assetlib/using_assetlib.rst:86 msgid "|image4|" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:104 msgid "" "*A State Machine editor plugin in Godot 2 by kubecz3k. It lets you manage " "states and transitions visually.*" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:108 msgid "Open source" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:110 msgid "" "Godot offers a fully open source codebase under the **MIT license**. This " "means all the technologies that ship with it have to be Free (as in freedom) " "as well. For the most part, they're developed from the ground up by " "contributors." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " "just won't ship with the engine. This may include Google AdMob, or FMOD. Any " "of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 msgid "" "On the other hand, an open codebase means you can **learn from and extend " "the engine** to your heart's content. You can also debug games easily, as " "Godot will print errors with a stack trace, even if they come from the " "engine itself." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:126 msgid "" "This **does not affect the work you do with Godot** in any way: there's no " "strings attached to the engine or anything you make with it." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:130 msgid "Community-driven" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:132 msgid "" "**Godot is made by its community, for the community, and for all game " "creators out there.** It's the needs of the users and open discussions that " "drive the core updates. New features from the core developers often focus on " "what will benefit the most users first." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:137 msgid "" "That said, although a handful of core developers work on it full-time, the " "project has over 600 contributors at the time of writing. Benevolent " "programmers work on features they may need themselves, so you'll see " "improvements in all corners of the engine at the same time in every major " "release." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:144 msgid "The Godot editor is a Godot game" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:146 msgid "" "The Godot editor runs on the game engine. It uses the engine's own UI " "system, it can hot-reload code and scenes when you test your projects, or " "run game code in the editor. This means you can **use the same code** and " "scenes for your games, or **build plugins and extend the editor.**" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:151 msgid "" "This leads to a reliable and flexible UI system, as it powers the editor " "itself. With the ``tool`` keyword, you can run any game code in the editor." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:154 #: ../../docs/tutorials/assetlib/using_assetlib.rst:90 msgid "|image5|" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:156 msgid "" "*RPG in a Box is a voxel RPG editor made with Godot 2. It uses Godot's UI " "tools for its node-based programming system and for the rest of the " "interface.*" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:160 msgid "" "Put the ``tool`` keyword at the top of any GDScript file and it will run in " "the editor. This lets you import and export plugins, create plugins like " "custom level editors, or create scripts with the same nodes and API you use " "in your projects." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:166 msgid "Separate 2D and 3D engines" msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:168 msgid "" "Godot offers dedicated 2D and 3D rendering engines. As a result, **the base " "unit for 2D scenes is pixels.** Even though the engines are separate, you " "can render 2D in 3D, 3D in 2D, and overlay 2D sprites and interfaces over " "your 3D world." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:4 msgid "Design interfaces with the Control nodes" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:6 msgid "" "Computer displays, mobile phones, and TV screens come in all shapes and " "sizes. To ship a game, you'll need to support different screen ratios and " "resolutions. It can be hard to build responsive interfaces that adapt to all " "platforms. Thankfully, Godot comes with robust tools to design and manage a " "responsive User Interface." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:14 msgid "Godot's editor is made with the engine's UI framework" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:16 msgid "This guide will get you started with UI design. You will learn:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:18 msgid "The five most useful control nodes to build your games' interface" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:19 msgid "How to work with the anchor of UI elements" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:20 msgid "" "How to efficiently place and arrange your user interface using containers" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:22 msgid "" "The five most common containers (you can learn more about containers in the :" "ref:`GUI Containers ` documentation page)." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:25 msgid "" "To learn how to control the interface and connect it to other scripts, read :" "ref:`Build your first game UI in Godot `." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:28 msgid "" "To design your UI, you'll use the Control nodes. These are the nodes with " "green icons in the editor. There are dozens of them, for creating anything " "from life bars to complex applications. Godot's editor itself is built using " "Control nodes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:32 msgid "" "Control nodes have unique properties that allow them to work well with one " "another. Other visual nodes, like Node2D and Sprite don't have these " "capabilities. So to make your life easier use Control nodes wherever " "possible when building your UIs." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:36 msgid "All control nodes share the same main properties:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:38 msgid "Anchor" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:39 msgid "Bounding rectangle" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:40 msgid "Focus and focus neighbor" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:41 #: ../../docs/tutorials/gui/gui_containers.rst:38 msgid "Size flags" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:42 msgid "Margin" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:43 msgid "The optional UI theme" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:45 msgid "" "Once you understand the basics of the Control node, it will take you less " "time to learn all the nodes that derive from it." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:50 msgid "The 5 most common UI elements" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:52 msgid "" "Godot ships with dozens of Control nodes. A lot of them are here to help you " "build editor plugins and applications." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:55 msgid "" "For most games, you'll only need five types of UI elements, and a few " "Containers. These five Control nodes are:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:58 msgid "Label: for displaying text" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:59 msgid "" "TextureRect: used mostly for backgrounds, or everything that should be a " "static image" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:61 msgid "" "TextureProgress: for lifebars, loading bars, horizontal, vertical or radial" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:63 msgid "NinePatchRect: for scalable panels" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:64 msgid "TextureButton: to create buttons" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:68 msgid "The 5 most common Control nodes for UI design" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:71 msgid "TextureRect" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:73 msgid "" "**TextureRect** displays a texture or image inside a UI. It seems similar to " "the Sprite node, but it offers multiple scaling modes. Set the Stretch Mode " "property to change its behavior:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:77 msgid "" "``Scale On Expand (compat)`` scales the texture to fit the node's bounding " "rectangle, only if ``expand`` property is ``true``; otherwise, it behaves " "like ``Keep`` mode. Default mode for backwards compatibility." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:80 msgid "``Scale`` scales the texture to fit the node's bounding rectangle." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:81 msgid "``Tile`` makes the texture repeat, but it won't scale." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:82 msgid "" "``Keep`` and ``Keep Centered`` force the texture to remain at its original " "size, in the top left corner or the center of the frame respectively." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:85 msgid "" "``Keep Aspect`` and ``Keep Aspect Centered`` scales the texture but force it " "to remain its original aspect ratio, in the top left corner or the center of " "the frame respectively." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:87 msgid "" "``Keep Aspect Covered`` works just like ``Keep Aspect Centered`` but the " "shorter side fits the bounding rectangle and the other one clips to the " "node's limits." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:90 msgid "" "As with Sprite nodes, you can modulate the TextureRect's color. Click the " "``Modulate`` property and use the color picker." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:95 msgid "TextureRect modulated with a red color" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:98 msgid "TextureButton" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:100 msgid "" "**TextureButton** is like TextureRect, except it has 5 texture slots: one " "for each of the button's states. Most of the time, you'll use the Normal, " "Pressed, and Hover textures. Focused is useful if your interface listens to " "the keyboard's input. The sixth image slot, the Click Mask, lets you define " "the clickable area using a 1-bit, pure black and white image." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:107 msgid "" "In the Base Button section, you'll find a few checkboxes that change how the " "button behaves. When ``Toggle Mode`` is on, the button will toggle between " "active and normal states when you press it. ``Disabled`` makes it disabled " "by default, in which case it will use the ``Disabled`` texture. " "TextureButton shares a few properties with the texture frame: it has a " "``modulate`` property, to change its color, and ``Resize`` and ``Stretch`` " "modes to change its scale behavior." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:117 msgid "TextureButton and its 5 texture slots" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:120 msgid "TextureProgress" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:122 msgid "" "**TextureProgress** layers up to 3 sprites to create a progress bar. The " "Under and Over textures sandwich the Progress one, which displays the bar's " "value." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:126 msgid "" "The ``Mode`` property controls the direction in which the bar grows: " "horizontally, vertically, or radially. If you set it to radial, the " "``Initial Angle`` and ``Fill Degrees`` properties let you limit the range of " "the gauge." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:131 msgid "" "To animate the bar, you'll want to look at the Range section. Set the " "``Min`` and ``Max`` properties to define the range of the gauge. For " "instance, to represent a character's life, you'll want to set ``Min`` to ``0," "`` and ``Max`` to the character's maximum life. Change the ``Value`` " "property to update the bar. If you leave the ``Min`` and ``Max`` values to " "the default of ``0`` and ``100,`` and set the ``Value`` property to ``40``, " "40% of the ``Progress`` texture will show up, and 60% of it will stay hidden." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:141 msgid "TextureProgress bar, two thirds filled" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:146 msgid "" "**Label** prints text to the screen. You'll find all its properties in the " "Label section, in the Inspector. Write the text in the ``Text`` property, " "and check Autowrap if you want it to respect the textbox's size. If Autowrap " "is off, you won't be able to scale the node. You can align the text " "horizontally and vertically with Align and Valign, respectively." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:155 msgid "Picture of a Label" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:158 msgid "NinePatchRect" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:160 msgid "" "**NinePatchRect** takes a texture split in 3 rows and 3 columns. The center " "and the sides tile when you scale the texture, but it never scales the " "corners. It is useful to build panels, dialog boxes and scalable backgrounds " "for your UI." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:167 msgid "NinePatchRect scaled with the min\\_size property" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:170 msgid "There are two workflows to build responsive UIs" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:172 msgid "" "There are two workflows to build scalable and flexible interfaces in Godot:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:174 msgid "" "You have many container nodes at your disposal that scale and place UI " "elements for you. They take control over their children." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:175 msgid "" "On the other side, you have the layout menu. It helps you to anchor, place " "and resize a UI element within its parent." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:177 msgid "" "The two approaches are not always compatible. Because a container controls " "its children, you cannot use the layout menu on them. Each container has a " "specific effect, so you may need to nest several of them to get a working " "interface. With the layout approach you work from the bottom up, on the " "children. As you don't insert extra containers in the scene it can make for " "cleaner hierarchies, but it's harder to arrange items in a row, column, " "grid, etc." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:179 msgid "" "As you create UIs for your games and tools, you'll develop a sense for what " "fits best in each situation." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:183 msgid "Place UI elements precisely with anchors" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:185 msgid "" "Control nodes have a position and size, but they also have anchors and " "margins. Anchors define the origin, or the reference point, for the Left, " "Top, Right and Bottom edges of the node. Change any of the 4 anchors to " "change the reference point of the margins." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:192 msgid "The anchor property" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:195 msgid "How to change the anchor" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:197 msgid "" "Like any properties, you can edit the 4 anchor points in the Inspector, but " "this is not the most convenient way. When you select a control node, the " "layout menu appears above the viewport, in the toolbar. It gives you a list " "of icons to set all 4 anchors with a single click, instead of using the " "inspector's 4 properties. The layout menu will only show up when you select " "a control node." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:206 msgid "The layout menu in the viewport" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:209 msgid "Anchors are relative to the parent container" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:211 msgid "" "Each anchor is a value between 0 and 1. For the left and top anchors, a " "value of 0 means that without any margin, the node's edges will align with " "the left and top edges of its parent. For the right and bottom edges, a " "value of 1 means they'll align with the parent container's right and bottom " "edges. On the other hand, margins represent a distance to the anchor " "position in pixels, while anchors are relative to the parent container's " "size." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:221 msgid "" "Margins are relative to the anchor position, which is relative to the " "anchors. In practice, you'll often let the container update margins for you" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:226 msgid "Margins change with the anchor" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:228 msgid "" "Margins update automatically when you move or resize a control node. They " "represent the distance from the control node's edges to its anchor, which is " "relative to the parent control node or container. That's why your control " "nodes should always be inside a container, as we'll see in a moment. If " "there's no parent, the margins will be relative to the node's own bounding " "Rectangle, set in the Rect section, in the inspector." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:238 msgid "Margins on a CenterContainer set to the \"Full Rect\" anchor" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:240 msgid "" "Try to change the anchors or nest your Control nodes inside Containers: the " "margins will update. You'll rarely need to edit the margins manually. Always " "try to find a container to help you first; Godot comes with nodes to solve " "all the common cases for you. Need to add space between a lifebar and the " "border of the screen? Use the MarginContainer. Want to build a vertical " "menu? Use the VBoxContainer. More on these below." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:249 msgid "Use size tags to change how UI elements fill the available space" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:251 msgid "" "Every control node has Size Flags. They tell containers how the UI elements " "should scale. If you add the \"Fill\" flag to the Horizontal or Vertical " "property, the node's bounding box will take all the space it can, but it'll " "respect its siblings and retain its size. If there are 3 TextureRect nodes " "in an HBoxContainer, with the \"Fill\" flags on both axes, they'll each take " "up to a third of the available space, but no more. The container will take " "over the node and resize it automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:261 msgid "3 UI elements in an HBoxContainer, they align horizontally" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:263 msgid "" "The \"Expand\" flag lets the UI element take all the space it can, and push " "against its siblings. Its bounding rectangle will grow against the edges of " "its parent, or until it's blocked by another UI node." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:269 msgid "" "The same example as above, but the center node has the \"Expand\" size flag" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:272 msgid "" "You'll need some practice to understand the size tags, as their effect can " "change quite a bit depending on how you set up your interface." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:276 msgid "Arrange control nodes automatically with containers" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:278 msgid "" "Containers automatically arrange all children Control nodes including other " "containers in rows, columns, and more. Use them to add padding around your " "interface or center nodes in their bounding rectangles. All built-in " "containers update in the editor, so you can see the effect instantly." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:284 msgid "" "Containers have a few special properties to control how they arrange UI " "elements. To change them, navigate down to the Custom Constants section in " "the Inspector." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:289 msgid "The 5 most useful containers" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:291 msgid "" "If you build tools, you might need all of the containers. But for most " "games, a handful will be enough:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:294 msgid "MarginContainer, to add margins around part of the UI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:295 msgid "CenterContainer, to center its children in its bounding box" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:296 msgid "" "VboxContainer and HboxContainer, to arrange UI elements in rows or columns" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:298 msgid "GridContainer, to arrange Controls nodes in a grid-like pattern" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:300 msgid "" "CenterContainer centers all its children inside of its bounding rectangle. " "It's one you typically use for title screens, if you want the options to " "stay in the center of the viewport. As it centers everything, you'll often " "want a single container nested inside it. If you use textures and buttons " "instead, they'll stack up." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:308 msgid "" "CenterContainer in action. The life bar centers inside its parent container." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:311 msgid "" "The MarginContainer adds a margin on any side of the child nodes. Add a " "MarginContainer that encompasses the entire viewport to add a separation " "between the edge of the window and the UI. You can set a margin on the top, " "left, right, or bottom side of the container. No need to tick the checkbox: " "click the corresponding value box and type any number. It will activate " "automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:320 msgid "The MarginContainer adds a 40px margin around the Game User Interface" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:322 msgid "" "There are two BoxContainers: VBoxContainer and HBoxContainer. You cannot add " "the BoxContainer node itself, as it is a helper class, but you can use " "vertical and horizontal box containers. They arrange nodes either in rows or " "columns. Use them to line up items in a shop, or to build complex grids with " "rows and columns of different sizes, as you can nest them to your heart's " "content." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:331 msgid "The HBoxContainer horizontally aligns UI elements" msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:333 msgid "" "VBoxContainer automatically arranges its children into a column. It puts " "them one after the other. If you use the separation parameter, it will leave " "a gap between its children. HBoxContainer arranges UI elements in a row. " "It's similar to the VBoxContainer, with an extra ``add_spacer`` method to " "add a spacer control node before its first child or after its last child, " "from a script." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:340 msgid "" "The GridContainer lets you arrange UI elements in a grid-like pattern. You " "can only control the number of columns it has, and it will set the number of " "rows by itself, based on its children's count. If you have nine children and " "three columns, you will have 9÷3 = 3 rows. Add three more children and " "you'll have four rows. In other words, it will create new rows as you add " "more textures and buttons. Like the box containers, it has two properties to " "set the vertical and horizontal separation between the rows and columns " "respectively." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:351 msgid "A GridContainer with 2 columns. It sizes each column automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:353 msgid "" "Godot's UI system is complex, and has a lot more to offer. To learn how to " "design more advanced interfaces, head to the :ref:`GUI section ` of the docs." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:4 msgid "Design a title screen" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:6 msgid "" "In the next two tutorials, you will build two responsive UI (user interface) " "scenes step-by-step using the engine's UI system:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:9 msgid "A main menu." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:10 msgid "A game UI with a health bar, energy bar, bomb and money counters." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:12 msgid "" "You will learn how to design game UIs efficiently, and how to use Godot's " "Control nodes. This page focuses on the visual part: everything you do from " "the editor. To learn how to code a life bar, read :doc:`ui_code_a_life_bar`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:20 msgid "The GUI you're going to create." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:22 msgid "" "Download the project files: :download:`ui_main_menu_design.zip ` and extract the archive. Import the ``start/`` " "project in Godot to follow this tutorial. The ``end/`` folder contains the " "final result. You'll find all the sprites in the ``start/assets/main_menu`` " "folder." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:30 msgid "" "Read the :doc:`ui_introduction_to_the_ui_system` first to learn how Godot's " "UI system works." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:34 msgid "How to design your game UI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:36 msgid "" "To design a good UI, you want to come up with a rough mockup first: a plain " "drawing version that focuses on the placement of your UI components, their " "size, and user interaction. Pen and paper is all you need. You shouldn't use " "fancy and final graphics at this stage. Then, you only need simple " "placeholder sprites and you're good to jump into Godot. You want to make " "sure the players can find their way around the interface using those " "placeholders." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:46 msgid "The UI's rough plan or mockup" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:48 msgid "" "Placeholder doesn't have to mean ugly, but you should keep the graphics " "simple and clean. Avoid special effects, animation, and detailed " "illustration before you have players playtest your UI. Otherwise:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:52 msgid "" "The graphics might skew the players' perception of the experience and you'll " "miss out on valuable feedback." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:54 msgid "If the User Experience doesn't work, you'll have to redo some sprites." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:58 msgid "" "Always try to make the interface work with simple text and boxes first. It's " "easy to replace the textures later. Professional UX designers often work " "with plain outlines and boxes in greyscale. When you take colors and fancy " "visuals away, it's a lot easier to size and place UI elements properly. It " "helps you refine the design foundation you'll build upon." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:65 msgid "There are two ways to design your UI in Godot. You can:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:67 msgid "" "Build it all in a single scene, and eventually save some branches as " "reusable scenes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:69 msgid "" "Build template scenes for reusable components and create specific components " "that inherit from your base scenes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:72 msgid "" "We will use the first approach, because the first version of your UI may not " "work as well as you'd like. You're likely to throw parts away and redesign " "components as you go. When you're sure everything works, it's easy to make " "some parts reusable, as you'll see below." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:79 msgid "" "The files you'll find in Godot. The graphics look cleaner than on the rough " "design, but they're still placeholders." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:83 msgid "Design the main menu" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:85 msgid "" "Before we jump into the editor, we want to plan how we'll nest containers " "based on our mockup image." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:89 #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:282 msgid "Break down the UI mockup" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:91 msgid "Here are my three rules of thumb to find the right containers:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:93 msgid "" "Break down the UI into nested boxes, from the largest that contains " "everything, to the smallest ones, that encompass one widget, like a bar with " "its label, a panel or a button." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:96 msgid "If there's some padding around an area, use a ``MarginContainer``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:97 msgid "" "If the elements are arranged in rows or columns, use an ``HBoxContainer`` or " "``VBoxContainer``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:100 msgid "" "These rules are enough to get us started, and work well for simple " "interfaces." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:103 msgid "" "For the main menu, the largest box is the entire game window. There's " "padding between the edges of the window and the first components: this " "should be a ``MarginContainer``. Then, the screen is split into two columns, " "so we'll use an ``HBoxContainer``. In the left column, we'll manage the rows " "with a ``VBoxContainer``. And in the right column, we'll center the " "illustration with a ``CenterContainer``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:112 msgid "Interface building blocks, broken down using the three rules of thumb." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:116 msgid "" "Containers adapt to the window's resolution and width-to-height ratio. " "Although we could place UI elements by hand, containers are faster, more " "precise, and **responsive**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:121 msgid "Prepare the Main Menu scene" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:123 msgid "" "Let's create the main menu. We'll build it in a single scene. To create an " "empty scene, click on **Scene > New Scene**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:126 msgid "" "We have to add a root node before we can save the scene. Your UI's root " "should be the outermost container or element. In this case it's a " "``MarginContainer``. ``MarginContainer`` is a good starting point for most " "interfaces, as you often need padding around the UI. Press :kbd:`Ctrl + S` (:" "kbd:`Cmd + S` on macOS) to save the scene to the disk. Name it *MainMenu*." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:132 msgid "" "Select the ``MarginContainer`` again, and head to the inspector to define " "the margins' size. Scroll down the ``Control`` class, to the ``Custom " "Constants`` section. Unfold it. Set the margins as such:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:136 msgid "Margin Right: *120*" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:137 msgid "Margin Top: *80*" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:138 msgid "Margin Left: *120*" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:139 msgid "Margin Bottom: *80*" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:141 msgid "" "We want the container to fit the window. In the toolbar above the Viewport, " "open the **Layout** menu and select the last option, **Full Rect**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:145 msgid "Add the UI sprites" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:147 msgid "" "Select the ``MarginContainer``, and create the UI elements as " "``TextureRect`` nodes. We need:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:150 msgid "the title or logo," msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:151 msgid "the three text options as individual nodes," msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:152 msgid "the version note," msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:153 msgid "and the main menu's illustration." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:155 msgid "" "Click the **Add Node** button or press :kbd:`Ctrl + A` (:kbd:`Cmd + A` on " "macOS) on your keyboard. Start to type ``TextureRect`` to find the " "corresponding node and press enter. With the new node selected, press :kbd:" "`Ctrl + D` (:kbd:`Cmd + D` on macOS) five times to create five extra " "``TextureRect`` instances." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:160 msgid "" "Click each of the nodes to select it. In the inspector, find the **Texture** " "property and click **[empty] > Load**. A file browser opens and lets you " "pick a sprite to load into the texture slot." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:166 msgid "The file browser lets you find and load textures." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:168 msgid "" "Repeat the operation for all ``TextureRect`` nodes. You should have the " "logo, the illustration, the three menu options and the version note, each as " "a separate node. Then, double click on each of the nodes in the Scene tab to " "rename them. Nothing has been placed in containers yet so this should look " "messy." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:176 msgid "The six nodes with textures loaded." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:180 msgid "" "If you want to support localization in your game, use ``Labels`` for menu " "options instead of ``TextureRect``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:184 msgid "Add containers to place UI elements automatically" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:186 msgid "" "Our main menu has some margin around the edges of the screen. It is split in " "two parts: on the left, you have the logo and the menu options. On the " "right, you have the characters. We can use one of two containers to achieve " "this: ``HSplitContainer`` or ``HBoxContainer``. Split containers split the " "area into two: a left and a right side or a top and a bottom side. They also " "allow the user to resize the left and right areas using an interactive bar. " "On the other hand, ``HBoxContainer`` just splits itself into as many columns " "as it has children. Although you can deactivate the split container's resize " "behavior, I recommend to favor box containers." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:197 msgid "" "Select the ``MarginContainer`` and add an ``HBoxContainer``. Then, we need " "two containers as children of our ``HBoxContainer``: a ``VBoxContainer`` for " "the menu options on the left, and a ``CenterContainer`` for the illustration " "on the right." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:204 msgid "" "You should have four nested containers and the TextureRect nodes sitting " "aside from it." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:207 msgid "" "In the node tree, select all the ``TextureRect`` nodes that should go on the " "left side: the logo, the menu options (Continue, NewGame, Options), and the " "version note. Drag and drop them into the ``VBoxContainer``. The nodes " "should position automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:214 msgid "Containers automatically place and resize textures" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:216 msgid "We're left with two problems to solve:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:218 msgid "The characters on the right aren't centered." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:219 msgid "There's no space between the logo and the other UI elements." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:221 msgid "" "To center the characters on the right, first select the ``CenterContainer``. " "Then in the Inspector, scroll down to the **Size Flags** category and click " "on the field to the right of the **Vertical** property, and check **Expand** " "in addition to **Fill**. Do the same for the **Horizontal** property. This " "makes the ``CenterContainer`` expand into all available space while " "respecting its neighbour ``VBoxContainer``. Finally, drag and drop the " "Characters node into the ``CenterContainer``. The Characters element will " "center automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:232 msgid "" "The character node centers inside the right half of the screen as soon as " "you place it inside the CenterContainer." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:235 msgid "" "To space out the menu options and the logo on the left, we'll use one final " "container and its size flags. Select the ``VBoxContainer`` and press :kbd:" "`Ctrl + A` (:kbd:`Cmd + A` on macOS) to add a new node inside it. Add a " "second ``VBoxContainer`` and name it *MenuOptions*. Select all three menu " "options, ``Continue``, ``NewGame`` and ``Options``, and drag and drop them " "inside the new ``VBoxContainer``. The UI's layout should barely change, if " "at all." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:245 msgid "" "Place the new container between the other two nodes to retain the UI's " "layout." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:248 msgid "" "Now we grouped the menu options together, we can tell their container to " "expand to take as much vertical space as possible. Select the " "``MenuOptions`` node. In the Inspector, scroll down to the **Size Flags** " "category. Click on the field to the right of the **Vertical** property, and " "check **Expand** in addition to **Fill**. The container expands to take all " "the available vertical space while respecting its neighbors, the ``Logo`` " "and ``Version`` elements." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:256 msgid "" "To center the nodes in the ``VBoxContainer``, scroll to the top of the " "Inspector and change the **Alignment** property to **Center**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:261 msgid "The menu options should center vertically in the UI's left column." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:263 msgid "" "To wrap things up, let's add some separation between the menu options. " "Expand the **Custom Constants** category below **Size Flags**, and click the " "field next to the **Separation** parameter. Set it to 30. Once you press " "enter, the **Separation** property becomes active and Godot adds 30 pixels " "between menu options." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:271 msgid "The final interface." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:273 msgid "" "Without a single line of code, we have a precise and responsive main menu." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:276 msgid "" "Congratulations for getting there! You can download the final menu :download:" "`ui_main_menu_design.zip ` to compare with " "your own. In the next tutorial, you'll create a Game User Interface with " "bars and item counters." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:284 msgid "" "A responsive User Interface is all about making sure our UIs scale well on " "all screen types. TV screens and computer displays have different sizes and " "ratios. In Godot, we use containers to control the position and the size of " "UI elements." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:289 msgid "" "The order in which you nest matters. To see if your UI adapts nicely to " "different screen ratios, select the root node, press :kbd:`Q` to activate " "the Select Mode, select the container and click and drag on one of the " "container's corners to resize it. The UI components should flow inside of it." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:295 msgid "" "You'll notice that although containers move sprites around, they don't scale " "them. This is normal. We want the UI system to handle different screen " "ratios, but we also need the entire game to adapt to different screen " "resolutions. To do this, Godot scales the entire window up and down." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:301 msgid "" "You can change the scale mode in the project settings: click **Project > " "Project Settings** in the top menu. In the window's left column, look for " "the **Display** category. Click on the **Window** sub-category. On the right " "side of the window, you'll find a **Stretch** section. The three settings, " "**Mode**, **Aspect**, and **Shrink**, control the screen size. For more " "information, see :ref:`doc_multiple_resolutions`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:4 msgid "Design the GUI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:6 msgid "" "Now that you've nailed the basics, we're going to see how to build a game " "Graphical User Interface (GUI) with reusable UI components: a life bar, an " "energy bar, and bomb and emerald counters. By the end of this tutorial, " "you'll have a game GUI, ready to control with GDscript or VisualScript:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:13 #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:621 msgid "The final result" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:15 msgid "You'll also learn to:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:17 msgid "Create flexible UI components" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:18 msgid "Use scene inheritance" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:19 msgid "Build a complex UI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:21 msgid "" "Download the project files: :download:`ui_gui_design.zip ` and extract the archive. Import the `start/` project in " "Godot to follow this tutorial. The `end/` folder contains the final result." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:25 msgid "" "You can watch this tutorial as a `video on YouTube `_." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:28 msgid "Breaking down the UI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:30 msgid "" "Let's break down the final UI and plan the containers we'll use. As in the :" "doc:`ui_main_menu`, it starts with a ``MarginContainer``. Then, we can see " "up to three columns:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:34 msgid "The life and energy counters on the left" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:35 msgid "The life and energy bars" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:36 #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:42 msgid "The bomb and emerald counters on the right" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:38 msgid "" "But the bar's label and the gauge are two parts of the same UI element. If " "we think of them this way, we're left with two columns:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:41 msgid "The life and energy bars on the left" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:44 msgid "" "This makes it easier to nest containers: we have some margins around the " "border of the screen using a ``MarginContainer``, followed by an " "``HBoxContainer`` to manage our two columns. The two bars stack on top of " "one another inside a ``VBoxContainer``. And we'll need a last " "``HBoxContainer`` in the right column to place the bomb and emerald counters " "side-by-side." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:53 msgid "We get a clean UI layout with only 4 containers" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:55 msgid "" "We will need extra containers inside the individual UI components, but this " "gives us the main GUI scene's structure. With this plan in place, we can " "jump into Godot and create our GUI." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:60 msgid "Create the base GUI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:62 msgid "" "There are two possible approaches to the GUI: we can design elements in " "separate scenes and put them together, or prototype everything in a single " "scene and break it down later. I recommend working with a single scene as " "you can play with your UI's placement and proportions faster this way. Once " "it looks good, you can save entire sections of the node tree as reusable sub-" "scenes. We'll do that in a moment." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:69 msgid "For now, let's start with a few containers." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:71 msgid "" "Create a new scene and add a ``MarginContainer``. Select the node and name " "it ``GUI``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:74 msgid "" "We want our interface to anchor to the top of the screen. Select the ``GUI`` " "node and click the Layout button at the top of the viewport. Select the " "``Top Wide`` option. The ``GUI`` node will anchor to the top edge of its " "parent, the viewport by default. It will resize automatically on the " "vertical axis to make space for its child UI components." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:80 msgid "Save the scene as ``GUI.tscn``. We will put the entire GUI in it." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:82 msgid "" "With the ``MarginContainer`` selected, head to the inspector and scroll down " "to the custom constants section. Unfold it and click the field next to each " "of the ``Margin`` properties. Set them all to ``20`` pixels. Next, add an " "``HBoxContainer`` node. This one will contain our two bars on the left and " "separate them from the two counters on the right." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:88 msgid "" "We want to stack the bars vertically inside the ``HBoxContainer``. Add a " "``VBoxContainer`` as a child of ``HBoxContainer`` and name it ``Bars``. " "Select the parent ``HBoxContainer`` again and this time, add another " "``HBoxContainer`` as a child of it. Call it ``Counters``. With these four " "containers, we have the base for our GUI scene." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:95 msgid "You should have 4 containers that look like this" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:99 msgid "" "We can work this way because we first broke down our UI design and took a " "few moments to think about the containers we'd use. When you follow a " "tutorial like this, it may seem weird. But once you're working on real " "games, you'll see it's an efficient workflow." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:105 msgid "Create the bars' base" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:107 msgid "" "Each bar is split into two sub-elements that align horizontally: the label " "with the health count on the left, and the gauge on the right. Once again, " "the ``HBoxContainer`` is the perfect tool for the job. Select the ``Bars`` " "node and add a new ``HBoxContainer`` inside of it. Name it ``Bar``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:113 msgid "" "The label itself requires at least three nodes: a ``NinePatchRect`` for the " "background, on top of which we'll add a texture on the left, either ``HP`` " "or ``EP``, and a ``Label`` on the right for the value. We can nest " "``Control`` nodes however we want. We could use the ``NinePatchRect`` as a " "parent for the two other elements, as it encompasses them. In general, you " "want to use containers instead, as their role is to help organize UI " "components. We'll need a ``MarginContainer`` later anyway to add some space " "between the life count and the gauge. Select the ``Bar`` and add a " "``MarginContainer``. Name it ``Count``. Inside of it, add three nodes:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:124 msgid "A ``NinePatchRect`` named ``Background``" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:125 msgid "A ``TextureRect`` named ``Title``" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:126 msgid "And a ``Label`` named ``Number``" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:128 msgid "To add the nodes as siblings, always select the ``Count`` node first." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:132 msgid "" "Your scene tree should look like this. We're ready to throw in some textures" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:135 msgid "" "Our scene is still empty. It's time to throw in some textures. To load the " "textures, head to the FileSystem dock to the left of the viewport. Browse " "down to the res://assets/GUI folder." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:141 msgid "You should see a list of textures that we'll use to skin our interface." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:144 msgid "" "Select the ``Background`` in the Scene dock. In the Inspector, you should " "see a ``Texture`` property. In the FileSystem tab, click and drag " "``label_HP_bg.png`` onto the ``Texture`` slot. It stays squashed. The parent " "MarginContainer will force its size down to 0 until we force elements inside " "the container to have a minimum size. Select the ``Background`` node. In the " "Inspector, scroll down to the Rect section. Set ``Min Size`` to (100, 40). " "You should see the ``Background`` resize along with its parent containers." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:153 msgid "" "Next, select the ``Title`` and drag and drop ``label_HP.png`` into its " "``Texture`` slot. Select the ``Number`` node, click the field next to the " "``Text`` property and type ``10``. This way, we can see both nodes in the " "viewport. They should stack up in the top-left corner of their parent " "``MarginContainer``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:161 msgid "If you select both nodes, you should see something like this" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:163 msgid "" "As they have a container as their direct parent, we cannot move them freely: " "the ``Count`` node will always reset their anchors, their size and position. " "Try to move and resize the nodes in the viewport. Then, select any of the " "three textures and press :kbd:`Ctrl + Up` or :kbd:`Ctrl + Down` to reorder " "them in the Scene dock. They'll snap back to their previous size and " "position." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:170 msgid "" "Parent containers control the size, the scale, the margins, and the anchors " "of their direct children. To modify the nodes, you must nest them inside a " "regular Control or another UI element. We'll use the ``Background`` as a " "parent for the ``Title`` and ``Number``. Select both the ``Title`` and " "``Number``, and drag and drop them onto ``Background``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:179 msgid "" "By using the Background node as the two textures' parent, we take control " "away from the Count MarginContainer" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:182 msgid "" "Select the ``Title`` and in the Inspector, change its ``Stretch Mode`` " "property to ``Keep Centered``. Next find the ``Rect`` category in the " "Inspector and change the ``Size`` property to (50, 40) so it only takes the " "left half of the background. Next, select the ``Number`` node. In the " "viewport, click the ``Layout`` menu and click ``Full Rect``. The node will " "resize to fit the ``Background``. Head to the Inspector and change its " "``Align`` property to ``Right``, and the ``Valign`` property to ``Center``. " "The text should snap to the center of the ``Background``'s right edge. " "Resize the node horizontally, so it takes the right half of the " "``Background`` and there's a bit of padding with the right edge." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:195 msgid "" "Here's how the nodes' bounding boxes should look in the viewport. Keep it " "rough, you don't need to place them too precisely for now." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:199 msgid "Replace the Label's font" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:201 msgid "" "The label's font is too small. We need to replace it. Select the ``Number`` " "node and in the Inspector, scroll down to the ``Control`` class, and find " "the ``Custom Font`` category. Click the field next to the ``Font`` property " "and click on ``New Dynamic Font``. Click on the field again and select Edit." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:207 msgid "" "You will enter the ``Dynamic Font`` resource. Unfold the ``Font`` category " "and click the field next to ``Font Data``. Click the ``Load`` button. In the " "file browser, navigate down to the assets/font folder and double click " "``Comfortaa-Bold.ttf`` to open it. You should see the font update in the " "viewport. Unfold the settings category to change the font size. Set the " "``Size`` property to a higher value, like ``24`` or ``28``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:215 msgid "" "We now need the text's baseline, the number's lower edge, to align with the " "HP texture on the left. To do so, still in the ``DynamicFont`` resource, you " "can tweak the ``Bottom`` property under the ``Extra Spacing`` category. It " "adds some bottom padding to the text. Click the ``Number`` node in the Scene " "tab to go back to the node's properties and change the ``Valign`` to " "``Bottom``. To adjust the text's baseline, click on the font field under the " "``Custom Font`` category again and tweak the ``Bottom`` property until the " "text aligns with the ``Title`` node. I used a value of ``2`` pixels." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:227 msgid "With a Bottom value of 2 pixels, the Number aligns with the Title" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:229 msgid "" "With this, we finished the hardest part of the GUI. Congratulations! Let's " "move on to the simpler nodes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:233 msgid "Add the progress bar" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:235 msgid "" "We need one last element to complete our life bar: the gauge itself. Godot " "ships with a ``TextureProgress`` node that has everything we need." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:238 msgid "" "Select the Bar node and add a ``TextureProgress`` inside of it. Name it " "``Gauge``. In the inspector unfold the ``Textures`` section. Head to the " "FileSystem dock and drag and drop the ``lifebar_bg.png`` texture onto the " "``Under`` slot. Do the same with the ``lifebar_fill.png`` image and drop it " "onto the ``Progress`` slot. Under the ``Range`` class in the inspector, " "change the ``Value`` property to ``50`` to see the gauge fill up." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:246 msgid "With only five ``Control`` nodes, our first bar is ready to use." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:250 msgid "" "That's it, our life bar is ready. This last part was quick, wasn't it? " "That's thanks to our robust container setup." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:254 msgid "Design the bomb and emerald counters" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:256 msgid "" "The bomb and emerald counters are like the bar's ``Count`` node. So we'll " "duplicate it and use it as a template." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:259 msgid "" "Under the ``Bar`` node, select ``Count`` and press :kbd:`Ctrl + D` to " "duplicate it. Drag and drop the new node under the ``Counters`` " "``HBoxContainer`` at the bottom of the scene tree. You should see it resize " "automatically. Don't worry about this for now, we'll fix the size soon." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:264 msgid "" "Rename the ``Count2`` node to ``Counter``. Unlike the bars, we want the " "number to be on the left, and an icon to sit on the right. The setup is the " "same: we need a background (a ``NinePatchRect``), the title, and the number " "nodes. The ``Title`` node is a ``TextureRect``, so it's what we need to " "display the icon. In the scene tree, select the ``Title`` node, and rename " "it to ``Icon``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:273 msgid "Here's how your node tree should look so far" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:275 msgid "" "With the ``Icon`` node selected, in the inspector, scroll to the top to see " "the ``Texture`` slot. Head to the FileSystem dock on the left and select the " "``bombs_icon.png``. Drag and drop it onto the ``Texture`` slot. In the Scene " "Tab select both the ``Icon`` and the ``Number`` nodes. Click the Layout menu " "in the toolbar at the top of the viewport and select ``Full Rect``. Both " "nodes will update to fit the size of the ``Background``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:285 msgid "The nodes anchor to the entire Background, but their position is off" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:287 msgid "" "Let's change the ``Number``'s align properties to move it to the left and " "center of the ``Background``. Select the ``Number`` node, change its " "``Align`` property to left and the ``Valign`` property to centre. Then " "resize its left edge a bit to add some padding between the left edge of the " "``Background`` and the text." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:295 msgid "The Number node aligned to the left and centre" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:297 msgid "" "To overlap the Icon and the background, we need a few tweaks. First, our " "background is a bit too tall. It's because it's inside a margin container " "that is controlled by the top-most GUI node. Select the GUI node at the top " "of the scene tree and downsize it vertically so that it's as thin as " "possible. You'll see the gauge prevents you from making it too small. A " "container cannot be smaller than the minimal size of its children. The " "container's margins also weigh in." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:305 msgid "" "Select the Icon, click the Layout menu, and select ``Full Rect`` to re-" "center it. We need it to anchor to the ``Background``'s right edge. Open the " "Layout menu again and select ``Center Right``. Move the icon up so it is " "centered vertically with the ``Background``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:313 msgid "" "The bomb icon anchors to the Background's right edge. Resize the Counter " "container to see the Icon node stick to its right side" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:316 msgid "" "Because we duplicated the ``Counter`` from the bar's ``Count``, the " "``Number`` node's font is off. Select the ``Number`` node again, head to the " "``Font`` property, and click it to access the ``DynamicFont`` resource. In " "the ``Extra Spacing`` section, change the ``Bottom`` value to ``0`` to reset " "the font's baseline. Our counter now works as expected." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:323 msgid "" "Let's make the ``Counters`` anchor to the right edge of the viewport. To do " "so, we need to set the ``Bars`` container take all the available horizontal " "space it can. Select the ``Bars`` node and scroll down to the ``Size Flags`` " "category. In the ``Horizontal`` category, check the ``Expand`` value. The " "``Bars`` node should resize and push the counter to the right side of the " "screen." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:331 msgid "" "An expanding container eats all the space it can from its parent, pushing " "everything else along the way" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:335 msgid "Turn the bar and counter into reusable UI components" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:337 msgid "" "We have one bar and one counter widget. But we need two of each. We may need " "to change the bars' design or their functionality later on. It'd be great if " "we could have a single scene to store a UI element's template, and child " "scenes to work on variations. Godot lets us do this with Inherited Scenes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:343 msgid "" "Let's save both the ``Counter`` and the ``Bar`` branches as separate scenes " "that we'll reduce to create the ``LifeBar``, the ``EnergyBar``, the " "``BombCounter``, and the ``EmeraldCounter``. Select the ``Bar`` " "HBoxContainer. Right click on it and click on ``Save Branch as Scene``. Save " "the scene as ``Bar.tscn``. You should see the node branch turn it to a " "single ``Bar`` node." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:352 msgid "" "A scene is a tree of nodes. The topmost node is the tree's **root**, and the " "children at the bottom of the hierarchy are **leaves**. Any node other than " "the root along with one or more children is a **branch**. We can encapsulate " "node branches into separate scenes, or load and merge them from other scenes " "into the active one. Right click on any node in the Scene dock and select " "``Save Branch as Scene`` or ``Merge from Scene``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:360 msgid "" "Then, select the ``Counter`` node and do the same. Right click, ``Save " "Branch as Scene``, and save it as ``Counter.tscn``. A new edit scene icon " "appears to the right of the nodes in the scene tree. Click on the one next " "to ``Bar`` to open the corresponding scene. Resize the ``Bar`` node so that " "its bounding box fits its content. The way we named and placed the Control " "nodes, we're ready to inherit this template and create the life bar. It's " "the same for the ``Counter``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:370 msgid "With no extra changes, our Bar is ready to use" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:373 msgid "Use scene inheritance to create the remaining elements" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:375 msgid "" "We need two bars that work the same way: they should feature a label on the " "left, with some value, and a horizontal gauge on the right. The only " "difference is that one has the HP label and is green, while the other is " "called EP and is yellow. Godot gives us a powerful tool to create a common " "base to reuse for all bars in the game: **inherited scenes**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:383 msgid "" "Inherited scenes help us keep the GUI scene clean. In the end, we will only " "have containers and one node for each UI component." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:386 msgid "" "On an inherited scene, you can change any property of every node in the " "inspector, aside from its name. If you modify and save the parent scene, all " "the inherited scenes update to reflect the changes. If you change a value in " "the inherited scene, it will always override the parent's property. It's " "useful for UIs, as they often require variations of the same elements. In " "general, in UI design, buttons, panels etc. share a common base style and " "interactions. We don't want to copy it over to all variations manually." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:395 msgid "" "A reload icon will appear next to the properties you override. Click it to " "reset the value to the parent scene's default." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:400 msgid "" "Think of scene inheritance like the node tree, or the ``extends`` keyword in " "GDScript. An inherited scene does everything like its parent, but you can " "override properties, resources and add extra nodes and scripts to extend its " "functionality." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:406 msgid "Inherit the Bar Scene to build the LifeBar" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:408 msgid "" "Go to ``Scene -> New Inherited Scene`` to create a new type of ``Bar``. " "Select the Bar scene and open it. You should see a new [unsaved] tab, that's " "like your ``Bar``, but with all nodes except the root in grey. Press :kbd:" "`Ctrl + S` (:kbd:`Cmd + S` on macOS) to save the new inherited scene and " "name it ``LifeBar``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:416 msgid "You can't rename grey nodes. This tells you they have a parent scene" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:418 msgid "" "First, rename the root or top level node to ``LifeBar``. We always want the " "root to describe exactly what this UI component is. The name differentiates " "this bar from the ``EnergyBar`` we'll create next. The other nodes inside " "the scene should describe the component's structure with broad terms, so it " "works with all inherited scenes. Like our ``TextureProgress`` and ``Number`` " "nodes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:427 msgid "" "If you've ever done web design, it's the same spirit as working with CSS: " "you create a base class, and add variations with modifier classes. From a " "base button class, you'll have button-green and button-red variations for " "the user to accept and refuse prompts. The new class contains the name of " "the parent element and an extra keyword to explain how it modifies it. When " "we create an inherited scene and change the name of the top level node, " "we're doing the same thing." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:436 msgid "Design the EnergyBar" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:438 msgid "" "We already setup the ``LifeBar``'s design with the main ``Bar`` scene. Now " "we need the ``EnergyBar``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:441 msgid "" "Let's create a new inherited scene, and once again select the ``Bar.tscn`` " "scene and open it. Double-click on the ``Bar`` root node and rename it to " "``EnergyBar``. Save the new scene as ``EnergyBar.tscn``. We need to replace " "the HP texture with EP one, and to change the textures on the gauge." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:447 msgid "" "Head to the FileSystem dock on the left, select the ``Title`` node in the " "Scene tree and drag and drop the ``label_EP.png`` file onto the texture " "slot. Select the ``Number`` node and change the ``Text`` property to a " "different value like ``14``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:452 msgid "" "You'll notice the EP texture is smaller than the HP one. We should update " "the ``Number``'s font size to better fit it. A font is a resource. All the " "nodes in the entire project that use this resource will be affected by any " "property we change. You can try to change the size to a huge value like " "``40`` and switch back to the ``LifeBar`` or the ``Bar`` scenes. You will " "see the text increased in size." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:461 msgid "If we change the font resource, all the nodes that use it are affected" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:464 msgid "" "To change the font size on this node only, we must create a copy of the font " "resource. Select the ``Number`` node again and click on the wrench and " "screwdriver icon on the top right of the inspector. In the drop-down menu, " "select the ``Make Sub-Resources Unique`` option. Godot will find all the " "resources this node uses and create unique copies for us." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:472 msgid "Use this option to create unique copies of the resources for one node" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:476 msgid "" "When you duplicate a node from the Scene tree, with :kbd:`Ctrl + D` (:kbd:" "`Cmd + D` on macOS), it shares its resources with the original node. You " "need to use ``Make Sub-Resources Unique`` before you can tweak the resources " "without affecting the source node." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:481 msgid "" "Scroll down to the ``Custom Font`` section and open ``Font``. Lower the " "``Size`` to a smaller value like ``20`` or ``22``. You may also need to " "adjust the ``Bottom`` spacing value to align the text's baseline with the EP " "label on the left." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:488 msgid "The EP Count widget, with a smaller font than its HP counterpart" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:490 msgid "" "Now, select the ``TextureProgress`` node. Drag the ``energy_bar_bg.png`` " "file onto the ``Under`` slot and do the same for ``energy_bar_fill.png`` and " "drop it onto the ``Progress`` texture slot." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:494 msgid "" "You can resize the node vertically so that its bounding rectangle fits the " "gauge. Do the same with the ``Count`` node until its size aligns with that " "of the bar. Because the minimal size of ``TextureProgress`` is set based on " "its textures, you won't be able to downsize the ``Count`` node below that. " "That is also the size the ``Bar`` container will have. You may downscale " "this one as well." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:501 msgid "" "Last but not least, the ``Background`` container has a minimum size that " "makes it a bit large. Select it and in the ``Rect`` section, change the " "``Min Size`` property down to ``80`` pixels. It should resize automatically " "and the ``Title`` and ``Number`` nodes should reposition as well." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:509 msgid "The Count looks better now it's a bit smaller" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:513 msgid "" "The Count node's size affects the position of the TextureProgress. As we'll " "align our bars vertically in a moment, we're better off using the Counter's " "left margin to resize our EP label. This way both the EnergyBar's Count and " "the LifeBar's Count nodes are one hundred pixels wide, so both gauges will " "align perfectly." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:520 msgid "Prepare the bomb and emerald counters" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:522 msgid "" "Let us now take care of the counters. Go to ``Scene -> New Inherited Scene`` " "and select the ``Counter.tscn`` as a base. Rename the root node as " "``BombCounter`` too. Save the new scene as ``BombCounter.tscn``. That's all " "for this scene." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:529 msgid "The bomb counter is the same as the original Counter scene" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:531 msgid "" "Go to ``Scene -> New Inherited Scene`` again and select ``Counter.tscn`` " "once more. Rename the root node ``EmeraldCounter`` and save the scene as " "``EmeraldCounter.tscn``. For this one, we mainly need to replace the bomb " "icon with the emerald icon. In the FileSystem tab, drag the ``emeralds_icon." "png`` onto the ``Icon`` node's ``Texture`` slot. ``Icon`` already anchors to " "the right edge of the ``Background`` node so we can change its position and " "it will scale and reposition with the ``EmeraldCounter`` container. Shift " "the emerald icon a bit to the right and down. Use the Arrow Keys on the " "keyboard to nudge its position. Save, and we're done with all the UI " "elements." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:544 msgid "The emerald counter should look something like this" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:547 msgid "Add the UI components to the final GUI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:549 msgid "" "Time to add all the UI elements to the main GUI scene. Open the ``GUI.tscn`` " "scene again, and delete the ``Bar`` and ``Counter`` nodes. In the FileSystem " "dock, find the ``LifeBar.tscn`` and drag and drop it onto the ``Bars`` " "container in the scene tree. Do the same for the ``EnergyBar``. You should " "see them align vertically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:557 msgid "The LifeBar and the EnergyBar align automatically" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:559 msgid "" "Now, drag and drop the ``BombCounter.tscn`` and ``EmeraldCounter.tscn`` " "scenes onto the ``Counters`` node. They'll resize automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:564 msgid "The nodes resize to take all the available vertical space" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:566 msgid "" "To let the ``EmeraldCounter`` and ``BombCounter`` use the size we defined in " "``Counter.tscn``, we need to change the ``Size Flags`` on the ``Counters`` " "container. Select the ``Counters`` node and unfold the ``Size Flags`` " "section in the Inspector. Uncheck the ``Fill`` tag for the ``Vertical`` " "property, and check ``Shrink Center`` so the container centers inside the " "``HBoxContainer``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:575 msgid "Now both counters have a decent size" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:579 msgid "" "Change the ``Min Size`` property of the ``Counters`` container to control " "the height of the counters' background." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:582 msgid "" "We have one small issue left with the EP label on the EnergyBar: the 2 bars " "should align vertically. Click the icon next to the ``EnergyBar`` node to " "open its scene. Select the ``Count`` node and scroll down to the ``Custom " "Constants`` section. Add a ``Margin Left`` of ``20``. In the ``Rect`` " "section set the node's ``Min Size`` back to 100, the same value as on the " "LifeBar. The ``Count`` should now have some margin on the left. If you save " "and go back to the GUI scene, it will be aligned vertically with the " "``LifeBar``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:593 msgid "The 2 bars align perfectly" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:597 msgid "" "We could have set up the ``EnergyBar`` this way a few moments ago. But this " "shows you that you can go back to any scene anytime, tweak it, and see the " "changes propagate through the project!" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:602 msgid "Place the GUI onto the game's mockup" msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:604 msgid "" "To wrap up the tutorial we're going to insert the GUI onto the game's mockup " "scene." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:607 msgid "Head to the FileSystem dock and open ``LevelMockup.tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:609 msgid "" "Drag-and-drop the ``GUI.tscn`` scene right below the ``bg`` node and above " "the ``Characters``. The GUI will scale to fit the entire viewport. Head to " "the Layout menu and select the ``Center Top`` option so it anchors to the " "top edge of the game window. Then resize the GUI to make it as small as " "possible vertically. Now you can see how the interface looks in the context " "of the game." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:616 msgid "" "Congratulations for getting to the end of this long tutorial. You can find " "the final project here: :download:`ui_gui_design.zip `." msgstr "" #: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:625 msgid "" "**A final note about Responsive Design**. If you resize the GUI, you'll see " "the nodes move, but the textures and text won't scale. The GUI also has a " "minimum size, based on the textures inside of it. In games, we don't need " "the interface to be as flexible as that of a website. You almost never want " "to support both landscape and portrait screen orientations. It's one or the " "other. In landscape orientation, the most common ratios range from 4:3 to " "16:9. They are close to one another. That's why it's enough for the GUI " "elements to only move horizontally when we change the window size." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:4 msgid "Control the game's UI with code" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:7 #: ../../docs/tutorials/2d/particle_systems_2d.rst:7 msgid "Intro" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:9 msgid "" "In this tutorial, you will connect a character to a life bar and animate the " "health loss." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:14 msgid "" "Here's what you'll create: the bar and the counter animate when the " "character takes a hit. They fade when it dies." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:18 msgid "You will learn:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:20 msgid "How to **connect** a character to a GUI with signals" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:21 msgid "How to **control** a GUI with GDscript" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:22 msgid "How to **animate** a life bar with the :ref:`Tween ` node" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:25 msgid "" "If you want to learn how to set up the interface instead, check out the step-" "by-step UI tutorials:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:28 msgid ":doc:`ui_main_menu`" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:29 msgid ":doc:`ui_game_user_interface`" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:32 msgid "" "When you code a game, you want to build the core gameplay first: the main " "mechanics, player input, win and loss conditions. The UI comes a bit later. " "You want to keep all the elements that make up your project separate if " "possible. Each character should be in its own scene, with its own scripts, " "and so should the UI elements. This prevents bugs, keeps your project " "manageable, and allows different team members to work on different parts of " "the game." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:40 msgid "" "Once the core gameplay and the UI are ready, you'll need to connect them " "somehow. In our example, we have the Enemy who attacks the Player at " "constant time intervals. We want the life bar to update when the Player " "takes damage." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:45 msgid "To do this, we will use **signals**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:49 msgid "" "Signals are Godot's version of the Observer pattern. They allow us to send " "out some message. Other nodes can connect to the object that **emits** the " "signal and receive the information. It's a powerful tool we use a lot for " "User Interface and achievement systems. You don't want to use them " "everywhere, though. Connecting two nodes adds some coupling between them. " "When there's a lot of connections, they become hard to manage. For more " "information, check out the `signals video tutorial `_ on GDquest." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:53 msgid "Download and explore the start project" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:55 msgid "" "Download the Godot project: :download:`ui_code_life_bar.zip `. It contains all the assets and scripts you need to " "get started. Extract the .zip archive to get two folders: `start` and `end`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:58 msgid "" "Load the ``start`` project in Godot. In the ``FileSystem`` dock, double " "click on LevelMockup.tscn to open it. It's an RPG game's mockup where 2 " "characters face each other. The pink enemy attacks and damages the green " "square at regular time intervals, until its death. Feel free to try out the " "game: the basic combat mechanics already work. But as the character isn't " "connected to the life bar, the ``GUI`` doesn't do anything." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:68 msgid "" "This is typical of how you'd code a game: you implement the core gameplay " "first, handle the player's death, and only then you'll add the interface. " "That's because the UI listens to what's happening in the game. So it can't " "work if other systems aren't in place yet. If you design the UI before you " "prototype and test the gameplay, chances are it won't work well and you'll " "have to re-create it from scratch." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:71 msgid "The scene contains a background sprite, a GUI, and two characters." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:75 msgid "The scene tree, with the GUI scene set to display its children" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:77 msgid "" "The GUI scene encapsulates all of the game's Graphical User Interface. It " "comes with a barebones script where we get the path to nodes that exist " "inside the scene:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:105 msgid "" "``number_label`` displays a life count as a number. It's a ``Label`` node" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:107 msgid "``bar`` is the life bar itself. It's a ``TextureProgress`` node" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:108 msgid "" "``tween`` is a component-style node that can animate and control any value " "or method from any other node" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:113 msgid "" "The project uses a simple organization that works for game jams and tiny " "games." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:115 msgid "" "At the root of the project, in the `res://` folder, you will find the " "`LevelMockup`. That's the main game scene and the one we will work with. All " "the components that make up the game are in the `scenes/` folder. The " "`assets/` folder contains the game sprites and the font for the HP counter. " "In the `scripts/` folder you will find the enemy, the player, and the GUI " "controller scripts." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:117 msgid "" "Click the edit scene icon to the right of the node in the scene tree to open " "the scene in the editor. You'll see the LifeBar and EnergyBar are sub-scenes " "themselves." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:121 msgid "The scene tree, with the Player scene set to display its children" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:124 msgid "Set up the Lifebar with the Player's max\\_health" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:126 msgid "" "We have to tell the GUI somehow what the player's current health is, to " "update the lifebar's texture, and to display the remaining health in the HP " "counter in the top left corner of the screen. To do this we send the " "player's health to the GUI every time they take damage. The GUI will then " "update the ``Lifebar`` and ``Number`` nodes with this value." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:132 msgid "" "We could stop here to display the number, but we need to initialize the " "bar's ``max_value`` for it to update in the right proportions. The first " "step is thus to tell the ``GUI`` what the green character's ``max_health`` " "is." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:139 msgid "" "The bar, a `TextureProgress`, has a `max_value` of `100` by default. If you " "don't need to display the character's health with a number, you don't need " "to change its `max_value` property. You send a percentage from the `Player` " "to the `GUI` instead: `health / max_health * 100`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:143 msgid "" "Click the script icon to the right of the ``GUI`` in the Scene dock to open " "its script. In the ``_ready`` function, we're going to store the " "``Player``'s ``max_health`` in a new variable and use it to set the " "``bar``'s ``max_value``:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:164 msgid "" "Let's break it down. ``$\"../Characters/Player\"`` is a shorthand that goes " "one node up in the scene tree, and retrieves the ``Characters/Player`` node " "from there. It gives us access to the node. The second part of the " "statement, ``.max_health``, accesses the ``max_health`` on the Player node." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:170 msgid "" "The second line assigns this value to ``bar.max_value``. You could combine " "the two lines into one, but we'll need to use ``player_max_health`` again " "later in the tutorial." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:174 msgid "" "``Player.gd`` sets the ``health`` to ``max_health`` at the start of the " "game, so we could work with this. Why do we still use ``max_health``? There " "are two reasons:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:178 msgid "" "We don't have the guarantee that ``health`` will always equal " "``max_health``: a future version of the game may load a level where the " "player already lost some health." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:184 msgid "" "When you open a scene in the game, Godot creates nodes one by one, following " "the order in your Scene dock, from top to bottom. `GUI` and `Player` are not " "part of the same node branch. To make sure they both exist when we access " "each other, we have to use the `_ready` function. Godot calls `_ready` right " "after it loaded all nodes, before the game starts. It's the perfect function " "to set everything up and prepare the game session. Learn more about _ready: :" "doc:`scripting_continued`" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:188 msgid "Update health with a signal when the player takes a hit" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:190 msgid "" "Our GUI is ready to receive the ``health`` value updates from the " "``Player``. To achieve this we're going to use **signals**." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:195 msgid "" "There are many useful built-in signals like `enter_tree` and `exit_tree`, " "that all nodes emit when they are respectively created and destroyed. You " "can also create your own using the `signal` keyword. On the `Player` node, " "you'll find two signals we created for you: `died` and `health_changed`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:197 msgid "" "Why don't we directly get the ``Player`` node in the ``_process`` function " "and look at the health value? Accessing nodes this way creates tight " "coupling between them. If you did it sparingly it may work. As your game " "grows bigger, you may have many more connections. If you get nodes this way " "it gets complex quickly. Not only that: you need to listen to the state " "change constantly in the ``_process`` function. This check happens 60 times " "a second and you'll likely break the game because of the order in which the " "code runs." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:206 msgid "" "On a given frame you may look at another node's property *before* it was " "updated: you get a value from the last frame. This leads to obscure bugs " "that are hard to fix. On the other hand, a signal is emitted right after a " "change happened. It **guarantees** you're getting a fresh piece of " "information. And you will update the state of your connected node *right " "after* the change happened." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:215 msgid "" "The Observer pattern, that signals derive from, still adds a bit of coupling " "between node branches. But it's generally lighter and more secure than " "accessing nodes directly to communicate between two separate classes. It can " "be okay for a parent node to get values from its children. But you'll want " "to favor signals if you're working with two separate branches. Read Game " "Programming Patterns for more information on the `Observer pattern `_. The `full book `_ is available online for free." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:219 msgid "" "With this in mind, let's connect the ``GUI`` to the ``Player``. Click on the " "``Player`` node in the scene dock to select it. Head down to the Inspector " "and click on the Node tab. This is the place to connect nodes to listen to " "the one you selected." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:224 msgid "The first section lists custom signals defined in ``Player.gd``:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:226 msgid "" "``died`` is emitted when the character died. We will use it in a moment to " "hide the UI." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:228 msgid "``health_changed`` is emitted when the character got hit." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:232 msgid "We're connecting to the health\\_changed signal" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:234 msgid "" "Select ``health_changed`` and click on the Connect button in the bottom " "right corner to open the Connect Signal window. On the left side you can " "pick the node that will listen to this signal. Select the ``GUI`` node. The " "right side of the screen lets you pack optional values with the signal. We " "already took care of it in ``Player.gd``. In general I recommend not to add " "too many arguments using this window as they're less convenient than doing " "it from the code." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:244 msgid "The Connect Signal window with the GUI node selected" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:248 msgid "" "You can optionally connect nodes from the code. However doing it from the " "editor has two advantages:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:250 msgid "Godot can write new callback functions for you in the connected script" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:251 msgid "" "An emitter icon appears next to the node that emits the signal in the Scene " "dock" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:253 msgid "" "At the bottom of the window you will find the path to the node you selected. " "We're interested in the second row called \"Method in Node\". This is the " "method on the ``GUI`` node that gets called when the signal is emitted. This " "method receives the values sent with the signal and lets you process them. " "If you look to the right, there is a \"Make Function\" radio button that is " "on by default. Click the connect button at the bottom of the window. Godot " "creates the method inside the ``GUI`` node. The script editor opens with the " "cursor inside a new ``_on_Player_health_changed`` function." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:265 msgid "" "When you connect nodes from the editor, Godot generates a method name with " "the following pattern: ``_on_EmitterName_signal_name``. If you wrote the " "method already, the \"Make Function\" option will keep it. You may replace " "the name with anything you'd like." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:272 msgid "Godot writes the callback method for you and takes you to it" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:274 msgid "" "Inside the parentheses after the function name, add a ``player_health`` " "argument. When the player emits the ``health_changed`` signal, it will send " "its current ``health`` alongside it. Your code should look like:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:292 msgid "" "The engine does not convert PascalCase to snake_case, for C# examples we'll " "be using PascalCase for method names & camelCase for method parameters, " "which follows the official `C# naming conventions. `_" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:299 msgid "" "In Player.gd, when the Player emits the health\\_changed signal, it also " "sends its health value" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:302 msgid "" "Inside ``_on_Player_health_changed``, let's call a second function called " "``update_health`` and pass it the ``player_health`` variable." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:307 msgid "" "We could directly update the health value on `LifeBar` and `Number`. There " "are two reasons to use this method instead:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:309 msgid "" "The name makes it clear for our future selves and teammates that when the " "player took damage, we update the health count on the GUI" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:310 msgid "We will reuse this method a bit later" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:312 msgid "" "Create a new ``update_health`` method below ``_on_Player_health_changed``. " "It takes a new\\_value as its only argument:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:327 msgid "This method needs to:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:329 msgid "" "set the ``Number`` node's ``text`` to ``new_value`` converted to a string" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:331 msgid "set the ``TextureProgress``'s ``value`` to ``new_value``" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:350 msgid "" "``str`` is a built-in function that converts about any value to text. " "``Number``'s ``text`` property requires a string, so we can't assign it to " "``new_value`` directly" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:354 msgid "" "Also call ``update_health`` at the end of the ``_ready`` function to " "initialize the ``Number`` node's ``text`` with the right value at the start " "of the game. Press :kbd:`F5` to test the game: the life bar updates with " "every attack!" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:361 msgid "" "Both the Number node and the TextureProgress update when the Player takes a " "hit" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:365 msgid "Animate the loss of life with the Tween node" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:367 msgid "" "Our interface is functional, but it could use some animation. That's a good " "opportunity to introduce the ``Tween`` node, an essential tool to animate " "properties. ``Tween`` animates anything you'd like from a start to an end " "state over a certain duration. For example, it can animate the health on the " "``TextureProgress`` from its current level to the ``Player``'s new " "``health`` when the character takes damage." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:374 msgid "" "The ``GUI`` scene already contains a ``Tween`` child node stored in the " "``tween`` variable. Let's now use it. We have to make some changes to " "``update_health``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:378 msgid "" "We will use the ``Tween`` node's ``interpolate_property`` method. It takes " "seven arguments:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:381 msgid "A reference to the node who owns the property to animate" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:382 msgid "The property's identifier as a string" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:383 msgid "The starting value" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:384 msgid "The end value" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:385 msgid "The animation's duration in seconds" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:386 msgid "The type of the transition" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:387 msgid "The easing to use in combination with the equation." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:389 msgid "" "The last two arguments combined correspond to an easing equation. This " "controls how the value evolves from the start to the end point." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:393 msgid "" "Click the script icon next to the ``GUI`` node to open it again. The " "``Number`` node needs text to update itself, and the ``Bar`` needs a float " "or an integer. We can use ``interpolate_property`` to animate a number, but " "not to animate text directly. We're going to use it to animate a new ``GUI`` " "variable named ``animated_health``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:399 msgid "" "At the top of the script, define a new variable, name it " "``animated_health``, and set its value to 0. Navigate back to the " "``update_health`` method and clear its content. Let's animate the " "``animated_health`` value. Call the ``Tween`` node's " "``interpolate_property`` method:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:421 msgid "Let's break down the call:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:427 msgid "" "We target ``animated_health`` on ``self``, that is to say the ``GUI`` node. " "``Tween``'s interpolate\\_property takes the property's name as a string. " "That's why we write it as ``\"animated_health\"``." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:435 msgid "" "The starting point is the current value the bar's at. We still have to code " "this part, but it's going to be ``animated_health``. The end point of the " "animation is the ``Player``'s ``health`` after the ``health_changed``: " "that's ``new_value``. And ``0.6`` is the animation's duration in seconds." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:441 msgid "" "The animation will not play until we activated the ``Tween`` node with " "``tween.start()``. We only have to do this once if the node is not active. " "Add this code after the last line:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:460 msgid "" "Although we could animate the `health` property on the `Player`, we " "shouldn't. Characters should lose life instantly when they get hit. It makes " "it a lot easier to manage their state, like to know when one died. You " "always want to store animations in a separate data container or node. The " "`tween` node is perfect for code-controlled animations. For hand-made " "animations, check out `AnimationPlayer`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:463 msgid "Assign the animated\\_health to the LifeBar" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:465 msgid "" "Now the ``animated_health`` variable animates but we don't update the actual " "``Bar`` and ``Number`` nodes anymore. Let's fix this." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:468 msgid "So far, the update\\_health method looks like this:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:492 msgid "" "In this specific case, because ``number_label`` takes text, we need to use " "the ``_process`` method to animate it. Let's now update the ``Number`` and " "``TextureProgress`` nodes like before, inside of ``_process``:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:514 msgid "" "`number_label` and `bar` are variables that store references to the `Number` " "and `TextureProgress` nodes." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:516 msgid "" "Play the game to see the bar animate smoothly. But the text displays decimal " "number and looks like a mess. And considering the style of the game, it'd be " "nice for the life bar to animate in a choppier fashion." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:522 msgid "The animation is smooth, but the number is broken" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:524 msgid "" "We can fix both problems by rounding out ``animated_health``. Use a local " "variable named ``round_value`` to store the rounded ``animated_health``. " "Then assign it to ``number_label.text`` and ``bar.value``:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:546 msgid "Try the game again to see a nice blocky animation." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:550 msgid "By rounding out animated\\_health, we kill two birds with one stone" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:554 msgid "" "Every time the player takes a hit, the ``GUI`` calls " "``_on_Player_health_changed``, which in turn calls ``update_health``. This " "updates the animation and the ``number_label`` and ``bar`` follow in " "``_process``. The animated life bar that shows the health going down " "gradually is a trick. It makes the GUI feel alive. If the ``Player`` takes 3 " "damage, it happens in an instant." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:562 msgid "Fade the bar when the Player dies" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:564 msgid "" "When the green character dies, it plays a death animation and fades out. At " "this point, we shouldn't show the interface anymore. Let's fade the bar as " "well when the character died. We will reuse the same ``Tween`` node as it " "manages multiple animations in parallel for us." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:569 msgid "" "First, the ``GUI`` needs to connect to the ``Player``'s ``died`` signal to " "know when it died. Press :kbd:`F1` to jump back to the 2D Workspace. Select " "the ``Player`` node in the Scene dock and click on the Node tab next to the " "Inspector." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:574 msgid "Find the ``died`` signal, select it, and click the Connect button." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:578 msgid "The signal should already have the Enemy connected to it" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:580 msgid "" "In the Connecting Signal window, connect to the ``GUI`` node again. The Path " "to Node should be ``../../GUI`` and the Method in Node should show " "``_on_Player_died``. Leave the Make Function option on and click Connect at " "the bottom of the window. This will take you to the ``GUI.gd`` file in the " "Script Workspace." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:588 msgid "You should get these values in the Connecting Signal window" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:592 msgid "" "You should see a pattern by now: every time the GUI needs a new piece of " "information, we emit a new signal. Use them wisely: the more connections you " "add, the harder they are to track." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:594 msgid "" "To animate a fade on a UI element, we have to use its ``modulate`` property. " "``modulate`` is a ``Color`` that multiplies the colors of our textures." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:600 msgid "" "`modulate` comes from the `CanvasItem` class, All 2D and UI nodes inherit " "from it. It lets you toggle the visibility of the node, assign a shader to " "it, and modify it using a color with `modulate`." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:602 msgid "" "``modulate`` takes a ``Color`` value with 4 channels: red, green, blue and " "alpha. If we darken any of the first three channels it darkens the " "interface. If we lower the alpha channel, our interface fades out." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:606 msgid "" "We're going to tween between two color values: from a white with an alpha of " "``1``, that is to say at full opacity, to a pure white with an alpha value " "of ``0``, completely transparent. Let's add two variables at the top of the " "``_on_Player_died`` method and name them ``start_color`` and ``end_color``. " "Use the ``Color()`` constructor to build two ``Color`` values." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:628 msgid "" "``Color(1.0, 1.0, 1.0)`` corresponds to white. The fourth argument, " "respectively ``1.0`` and ``0.0`` in ``start_color`` and ``end_color``, is " "the alpha channel." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:632 msgid "" "We then have to call the ``interpolate_property`` method of the ``Tween`` " "node again:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:645 msgid "" "This time, we change the ``modulate`` property and have it animate from " "``start_color`` to the ``end_color``. The duration is of one second, with a " "linear transition. Here's the complete ``_on_Player_died`` method:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:669 msgid "And that is it. You may now play the game to see the final result!" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:673 msgid "The final result. Congratulations for getting there!" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:677 msgid "" "Using the exact same techniques, you can change the color of the bar when " "the Player gets poisoned, turn the bar red when its health drops low, shake " "the UI when they take a critical hit... the principle is the same: emit a " "signal to forward the information from the `Player` to the `GUI` and let the " "`GUI` process it." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:4 msgid "Splash screen" msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:7 msgid "Tutorial" msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:9 msgid "" "This is a simple tutorial to establish the basic idea of how the GUI " "subsystem works. The goal is to create a simple, static splash screen." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:15 msgid "" "Following is a file with the assets that will be used. The extracted files " "can be placed directly in your project folder and Godot will import them " "automatically." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:18 msgid ":download:`robisplash_assets.zip `." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 #: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 msgid "Setting up" msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:23 msgid "" "Set the display resolution to 800x450 in Project Settings, and set up a new " "scene like this:" msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:27 msgid "" "The nodes \"background\" and \"logo\" are of :ref:`TextureRect " "` type. To display an image, drag the corresponding asset " "to the texture property." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:32 msgid "" "The node \"start\" is a :ref:`TextureButton `. It takes " "several images for different states, but only the normal and pressed will be " "supplied in this example:" msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:38 msgid "Finally, the node \"copyright\" is a :ref:`Label `." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:40 msgid "Your final scene should look something like this." msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:44 msgid "" "Go ahead and run the project. If you're satisfied with the results, " "continue to the next tutorial." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:4 msgid "Animations" msgstr "אנימציות" #: ../../docs/getting_started/step_by_step/animations.rst:9 msgid "Godot's animation system is extremely powerful and flexible." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:11 msgid "" "To begin, let's use the scene from the previous tutorial (:ref:" "`doc_splash_screen`). The goal is to add a \"fade-in\" animation to the " "splash image. Here's a copy just in case: :download:`robisplash.zip `." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:16 msgid "Add an animation player" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:18 msgid "" "First of all, add an :ref:`AnimationPlayer ` node to " "the scene as a child of \"background\" (the root node):" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:23 msgid "" "When a node of this type is selected, the animation editor panel will appear:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:28 msgid "The animation editor panel stays visible until manually hidden." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:31 msgid "Creating the animation" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:33 msgid "" "It's time to create a new animation! Press the Animation button then select " "new from the menu. Name the animation \"intro\" when the dialog appears." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:40 msgid "" "Now that we have an animation, the property editor enters \"animation editing" "\" mode. In this mode, a key icon appears next to every property of the " "property editor. In Godot, any property of an object can be animated:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:48 msgid "Editing the animation" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:50 msgid "The logo will appear from the top of the screen." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:52 msgid "" "With the animation editor panel open, select the \"logo\" node and set the " "\"Rect / Position\" property to ``(118, -400)`` and press the key button " "next to the property to add a keyframe:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:58 msgid "When the dialog appears, confirm that you are creating a new track." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:60 msgid "The keyframe will be added in the animation player editor:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:64 msgid "Move the editor cursor forward in time by clicking here:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:68 msgid "" "Change the logo position to ``(118, 0)`` and add a keyframe again. With two " "keyframes with different values, the animation happens." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:73 msgid "" "Pressing \"Play selected animation from start\" button on the animation " "panel (or :kbd:`Shift + D` on keyboard) will make the logo descend." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:78 msgid "" "Click the \"Autoplay on Load\" button to set the animation to start " "automatically when the scene starts." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:83 msgid "" "And finally, when running the scene, the animation should look like this:" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:4 #: ../../docs/tutorials/threads/thread_safe_apis.rst:58 #: ../../docs/development/file_formats/tscn.rst:257 #: ../../docs/community/tutorials.rst:53 msgid "Resources" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:7 msgid "Nodes and resources" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:9 msgid "" "Up to this tutorial, we focused on the :ref:`Node ` class in " "Godot as that's the one you use to code behavior and most of the engine's " "features rely on it. There is another datatype that is just as important: :" "ref:`Resource `." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:15 msgid "" "*Nodes* give you functionality: they draw sprites, 3D models, simulate " "physics, arrange user interfaces, etc. **Resources** are **data " "containers**. They don't do anything on their own: instead, nodes use the " "data contained in resources." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:19 msgid "" "Anything Godot saves or loads from disk is a resource. Be it a scene (a ``." "tscn`` or an ``.scn`` file), an image, a script... Here are some " "``Resource`` examples: :ref:`Texture `, :ref:`Script " "`, :ref:`Mesh `, :ref:`Animation " "`, :ref:`AudioStream `, :ref:`Font " "`, :ref:`Translation `." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:26 msgid "" "When the engine loads a resource from disk, **it only loads it once**. If a " "copy of that resource is already in memory, trying to load the resource " "again will return the same copy every time. As resources only contain data, " "there is no need to duplicate them." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:31 msgid "" "Every object, be it a Node or a Resource, can export properties. There are " "many types of Properties, like String, integer, Vector2, etc., and any of " "these types can become a resource. This means that both nodes and resources " "can contain resources as properties:" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:39 msgid "External vs built-in" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:41 msgid "There are two ways to save resources. They can be:" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:43 msgid "**External** to a scene, saved on the disk as individual files." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:44 msgid "" "**Built-in**, saved inside the ``.tscn`` or the ``.scn`` file they're " "attached to." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:46 msgid "" "To be more specific, here's a :ref:`Texture ` in a :ref:" "`Sprite ` node:" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:51 msgid "" "Clicking the resource preview allows us to view and edit the resource's " "properties." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:55 msgid "" "The path property tells us where the resource comes from. In this case, it " "comes from a PNG image called ``robi.png``. When the resource comes from a " "file like this, it is an external resource. If you erase the path or this " "path is empty, it becomes a built-in resource." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:60 msgid "" "The switch between built-in and external resources happens when you save the " "scene. In the example above, if you erase the path ``\"res://robi.png\"`` " "and save, Godot will save the image inside the ``.tscn`` scene file." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:66 msgid "" "Even if you save a built-in resource, when you instance a scene multiple " "times, the engine will only load one copy of it." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:70 msgid "Loading resources from code" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:72 msgid "" "There are two ways to load resources from code. First, you can use the " "``load()`` function anytime:" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:90 msgid "" "You can also ``preload`` resources. Unlike ``load``, this function will read " "the file from disk and load it at compile-time. As a result, you cannot call " "preload with a variable path: you need to use a constant string." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:106 msgid "Loading scenes" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:108 msgid "" "Scenes are also resources, but there is a catch. Scenes saved to disk are " "resources of type :ref:`PackedScene `. The scene is " "packed inside a resource." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:112 msgid "" "To get an instance of the scene, you have to use the :ref:`PackedScene." "instance() ` method." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:133 msgid "" "This method creates the nodes in the scene's hierarchy, configures them, and " "returns the root node of the scene. You can then add it as a child of any " "other node." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:137 msgid "" "The approach has several advantages. As the :ref:`PackedScene.instance() " "` function is fast, you can create new " "enemies, bullets, effects, etc. without having to load them again from disk " "each time. Remember that, as always, images, meshes, etc. are all shared " "between the scene instances." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:144 msgid "Freeing resources" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:146 msgid "" "When a ``Resource`` is no longer in use, it will automatically free itself. " "Since, in most cases, Resources are contained in Nodes, when you free a " "node, the engine frees all the resources it owns as well if no other node " "uses them." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:151 msgid "Creating your own resources" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:153 msgid "" "Like any Object in Godot, users can also script Resources. Resource scripts " "inherit the ability to freely translate between object properties and " "serialized text or binary data (\\*.tres, \\*.res). They also inherit the " "reference-counting memory management from the Reference type." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:158 msgid "" "This comes with many distinct advantages over alternative data structures, " "such as JSON, CSV, or custom TXT files. Users can only import these assets " "as a :ref:`Dictionary ` (JSON) or as a :ref:`File " "` to parse. What sets Resources apart is their inheritance of :" "ref:`Object `, :ref:`Reference `, and :ref:" "`Resource ` features:" msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:165 msgid "" "They can define constants, so constants from other data fields or objects " "are not needed." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:167 msgid "" "They can define methods, including setter/getter methods for properties. " "This allows for abstraction and encapsulation of the underlying data. If the " "Resource script's structure needs to change, the game using the Resource " "need not also change." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:169 msgid "" "They can define signals, so Resources can trigger responses to changes in " "the data they manage." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:171 msgid "" "They have defined properties, so users know 100% that their data will exist." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:173 msgid "" "Resource auto-serialization and deserialization is a built-in Godot Engine " "feature. Users do not need to implement custom logic to import/export a " "resource file's data." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:175 msgid "" "Resources can even serialize sub-Resources recursively, meaning users can " "design even more sophisticated data structures." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:177 msgid "" "Users can save Resources as version-control-friendly text files (\\*.tres). " "Upon exporting a game, Godot serializes resource files as binary files (\\*." "res) for increased speed and compression." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:179 msgid "" "Godot Engine's Inspector renders and edits Resource files out-of-the-box. As " "such, users often do not need to implement custom logic to visualize or edit " "their data. To do so, double-click the resource file in the FileSystem dock " "or click the folder icon in the Inspector and open the file in the dialog." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:181 msgid "" "They can extend **other** resource types besides just the base Resource." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:183 msgid "Godot makes it easy to create custom Resources in the Inspector." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:185 msgid "" "Create a plain Resource object in the Inspector. This can even be a type " "that derives Resource, so long as your script is extending that type." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:186 msgid "Set the ``script`` property in the Inspector to be your script." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:188 msgid "" "The Inspector will now display your Resource script's custom properties. If " "one edits those values and saves the resource, the Inspector serializes the " "custom properties too! To save a resource from the Inspector, click the " "Inspector's tools menu (top right), and select \"Save\" or \"Save As...\"." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:193 msgid "" "If the script's language supports :ref:`script classes " "`, then it streamlines the process. " "Defining a name for your script alone will add it to the Inspector's " "creation dialog. This will auto-add your script to the Resource object you " "create." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:198 msgid "Let's see some examples." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:271 msgid "" "Resource scripts are similar to Unity's ScriptableObjects. The Inspector " "provides built-in support for custom resources. If desired though, users can " "even design their own Control-based tool scripts and combine them with an :" "ref:`EditorPlugin ` to create custom visualizations and " "editors for their data." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:277 msgid "" "Unreal Engine 4's DataTables and CurveTables are also easy to recreate with " "Resource scripts. DataTables are a String mapped to a custom struct, similar " "to a Dictionary mapping a String to a secondary custom Resource script." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:313 msgid "" "Instead of just inlining the Dictionary values, one could also, " "alternatively..." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:315 msgid "" "Import a table of values from a spreadsheet and generate these key-value " "pairs, or..." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:317 msgid "" "Design a visualization within the editor and create a simple plugin that " "adds it to the Inspector when you open these types of Resources." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:320 msgid "" "CurveTables are the same thing, except mapped to an Array of float values or " "a :ref:`Curve `/:ref:`Curve2D ` resource object." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:325 msgid "" "Beware that resource files (\\*.tres/\\*.res) will store the path of the " "script they use in the file. When loaded, they will fetch and load this " "script as an extension of their type. This means that trying to assign a " "subclass, i.e. an inner class of a script (such as using the ``class`` " "keyword in GDScript) won't work. Godot will not serialize the custom " "properties on the script subclass properly." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:331 msgid "" "In the example below, Godot would load the ``Node`` script, see that it " "doesn't extend ``Resource``, and then determine that the script failed to " "load for the Resource object since the types are incompatible." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:4 msgid "File system" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:9 msgid "" "A file system manages how assets are stored and how they are accessed. A " "well-designed file system also allows multiple developers to edit the same " "source files and assets while collaborating. Godot stores all assets as " "files in its file system." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:15 msgid "Implementation" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:17 msgid "" "The file system stores resources on disk. Anything, from a script, to a " "scene or a PNG image is a resource to the engine. If a resource contains " "properties that reference other resources on disk, the paths to those " "resources are also included. If a resource has sub-resources that are built-" "in, the resource is saved in a single file together with all the bundled sub-" "resources. For example, a font resource is often bundled together with the " "font textures." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:24 msgid "" "The Godot file system avoids using metadata files. Existing asset managers " "and VCSs are better than anything we can implement, so Godot tries its best " "to play along with SVN, Git, Mercurial, Perforce, etc." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:28 msgid "Example of file system contents:" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:39 msgid "project.godot" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:41 msgid "" "The ``project.godot`` file is the project description file, and it is always " "found at the root of the project. In fact, its location defines where the " "root is. This is the first file that Godot looks for when opening a project." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:45 msgid "" "This file contains the project configuration in plain text, using the win." "ini format. Even an empty ``project.godot`` can function as a basic " "definition of a blank project." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:50 msgid "Path delimiter" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:52 msgid "" "Godot only supports ``/`` as a path delimiter. This is done for portability " "reasons. All operating systems support this, even Windows, so a path such as " "``C:\\project\\project.godot`` needs to be typed as ``C:/project/project." "godot``." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:58 #: ../../docs/tutorials/io/data_paths.rst:16 msgid "Resource path" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:60 msgid "" "When accessing resources, using the host OS file system layout can be " "cumbersome and non-portable. To solve this problem, the special path ``res://" "`` was created." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:64 msgid "" "The path ``res://`` will always point at the project root (where ``project." "godot`` is located, so ``res://project.godot`` is always valid)." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:68 msgid "" "This file system is read-write only when running the project locally from " "the editor. When exported or when running on different devices (such as " "phones or consoles, or running from DVD), the file system will become read-" "only and writing will no longer be permitted." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:74 msgid "User path" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:76 msgid "" "Writing to disk is still needed for tasks such as saving game state or " "downloading content packs. To this end, the engine ensures that there is a " "special path ``user://`` that is always writable. This path resolves " "differently depending on the OS the project is running on. Local path " "resolution is further explained in :ref:`doc_data_paths`." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:83 msgid "Host file system" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:85 msgid "" "Alternatively host file system paths can also be used, but this is not " "recommended for a released product as these paths are not guaranteed to work " "on all platforms. However, using host file system paths can be useful when " "writing development tools in Godot." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:91 msgid "Drawbacks" msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:93 msgid "" "There are some drawbacks to this simple file system design. The first issue " "is that moving assets around (renaming them or moving them from one path to " "another inside the project) will break existing references to these assets. " "These references will have to be re-defined to point at the new asset " "location." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:98 msgid "" "To avoid this, do all your move, delete and rename operations from within " "Godot, on the FileSystem dock. Never move assets from outside Godot, or " "dependencies will have to be fixed manually (Godot detects this and helps " "you fix them anyway, but why go the hard route?)." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:103 msgid "" "The second is that, under Windows and macOS, file and path names are case " "insensitive. If a developer working in a case insensitive host file system " "saves an asset as ``myfile.PNG``, but then references it as ``myfile.png``, " "it will work fine on their platform, but not on other platforms, such as " "Linux, Android, etc. This may also apply to exported binaries, which use a " "compressed package to store all files." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:109 msgid "" "It is recommended that your team clearly define a naming convention for " "files when working with Godot. One simple fool-proof convention is to only " "allow lowercase file and path names." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:4 #: ../../docs/getting_started/step_by_step/scene_tree.rst:33 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:288 msgid "SceneTree" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:9 msgid "" "In previous tutorials, everything revolved around the concept of nodes. " "Scenes are collections of nodes. They become active once they enter the " "*scene tree*." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:14 msgid "MainLoop" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:16 msgid "" "The way Godot works internally is as follows. There is the :ref:`OS " "` class, which is the only instance that runs at the beginning. " "Afterwards, all drivers, servers, scripting languages, scene system, etc are " "loaded." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:21 msgid "" "When initialization is complete, :ref:`OS ` needs to be supplied " "a :ref:`MainLoop ` to run. Up to this point, all this is " "internals working (you can check main/main.cpp file in the source code if " "you are ever interested to see how this works internally)." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:27 msgid "" "The user program, or game, starts in the MainLoop. This class has a few " "methods, for initialization, idle (frame-synchronized callback), fixed " "(physics-synchronized callback), and input. Again, this is low level and " "when making games in Godot, writing your own MainLoop seldom makes sense." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:35 msgid "" "One of the ways to explain how Godot works is that it's a high level game " "engine over a low level middleware." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:38 msgid "" "The scene system is the game engine, while the :ref:`OS ` and " "servers are the low level API." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:41 msgid "" "The scene system provides its own main loop to OS, :ref:`SceneTree " "`. This is automatically instanced and set when running a " "scene, no need to do any extra work." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:46 msgid "" "It's important to know that this class exists because it has a few important " "uses:" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:49 msgid "" "It contains the root :ref:`Viewport `, to which a scene is " "added as a child when it's first opened to become part of the *Scene Tree* " "(more on that next)." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:52 msgid "" "It contains information about the groups and has the means to call all nodes " "in a group or get a list of them." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:54 msgid "" "It contains some global state functionality, such as setting pause mode or " "quitting the process." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:57 msgid "" "When a node is part of the Scene Tree, the :ref:`SceneTree " "` singleton can be obtained by calling :ref:`Node." "get_tree() `." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:63 msgid "Root viewport" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:65 msgid "" "The root :ref:`Viewport ` is always at the top of the scene. " "From a node, it can be obtained in two different ways:" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:80 msgid "" "This node contains the main viewport. Anything that is a child of a :ref:" "`Viewport ` is drawn inside of it by default, so it makes " "sense that the top of all nodes is always a node of this type otherwise " "nothing would be seen." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:85 msgid "" "While other viewports can be created in the scene (for split-screen effects " "and such), this one is the only one that is never created by the user. It's " "created automatically inside SceneTree." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:90 #: ../../docs/tutorials/threads/thread_safe_apis.rst:22 msgid "Scene tree" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:92 msgid "" "When a node is connected, directly or indirectly, to the root viewport, it " "becomes part of the *scene tree*." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:95 msgid "" "This means that as explained in previous tutorials, it will get the " "_enter_tree() and _ready() callbacks (as well as _exit_tree())." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:100 msgid "" "When nodes enter the *Scene Tree*, they become active. They get access to " "everything they need to process, get input, display 2D and 3D visuals, " "receive and send notifications, play sounds, etc. When they are removed from " "the *scene tree*, they lose these abilities." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:106 msgid "Tree order" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:108 msgid "" "Most node operations in Godot, such as drawing 2D, processing, or getting " "notifications are done in tree order. This means that parents and siblings " "with a lower rank in the tree order will get notified before the current " "node." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:116 msgid "\"Becoming active\" by entering the *Scene Tree*" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:118 msgid "A scene is loaded from disk or created by scripting." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:119 msgid "" "The root node of that scene (only one root, remember?) is added as either a " "child of the \"root\" Viewport (from SceneTree), or to any child or " "grandchild of it." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:122 msgid "" "Every node of the newly added scene, will receive the \"enter_tree\" " "notification ( _enter_tree() callback in GDScript) in top-to-bottom order." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:125 msgid "" "An extra notification, \"ready\" ( _ready() callback in GDScript) is " "provided for convenience, when a node and all its children are inside the " "active scene." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:128 msgid "" "When a scene (or part of it) is removed, they receive the \"exit scene\" " "notification ( _exit_tree() callback in GDScript) in bottom-to-top order" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:133 msgid "Changing current scene" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:135 msgid "" "After a scene is loaded, it is often desired to change this scene for " "another one. The simple way to do this is to use the :ref:`SceneTree." "change_scene() ` function:" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:153 msgid "" "Rather than using file paths, one can also use ready-made :ref:`PackedScene " "` resources using the equivalent function :ref:`SceneTree." "change_scene_to(PackedScene scene) `:" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:174 msgid "" "These are quick and useful ways to switch scenes but have the drawback that " "the game will stall until the new scene is loaded and running. At some point " "in the development of your game, it may be preferable to create proper " "loading screens with progress bar, animated indicators or thread " "(background) loading. This must be done manually using autoloads (see next " "chapter) and :ref:`doc_background_loading`." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:4 msgid "Singletons (AutoLoad)" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:9 msgid "" "Godot's scene system, while powerful and flexible, has a drawback: there is " "no method for storing information (e.g. a player's score or inventory) that " "is needed by more than one scene." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:13 msgid "" "It's possible to address this with some workarounds, but they come with " "their own limitations:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:16 msgid "" "You can use a \"master\" scene that loads and unloads other scenes as its " "children. However, this means you can no longer run those scenes " "individually and expect them to work correctly." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:19 msgid "" "Information can be stored to disk in ``user://`` and then loaded by scenes " "that require it, but frequently saving and loading data is cumbersome and " "may be slow." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:23 msgid "" "The `Singleton Pattern `_ " "is a useful tool for solving the common use case where you need to store " "persistent information between scenes. In our case it is possible re-use the " "same scene or class for multiple singletons, so long as they have different " "names." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:29 msgid "Using this concept, you can create objects that:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:31 msgid "Are always loaded, no matter which scene is currently running" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:32 msgid "Can store global variables, such as player information" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:33 msgid "Can handle switching scenes and between-scene transitions" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:34 msgid "" "Act like a singleton, since GDScript does not support global variables by " "design" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:36 msgid "Autoloading nodes and scripts can give us these characteristics." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:39 msgid "AutoLoad" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:41 msgid "" "You can use AutoLoad to load a scene or a script that inherits from :ref:" "`Node `. Note: when autoloading a script, a Node will be created " "and the script will be attached to it. This node will be added to the root " "viewport before any other scenes are loaded." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:48 msgid "" "To autoload a scene or script, select ``Project -> Project Settings`` from " "the menu and switch to the \"AutoLoad\" tab." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:53 msgid "" "Here you can add any number of scenes or scripts. Each entry in the list " "requires a name, which is assigned as the node's ``name`` property. The " "order of the entries as they are added to the global scene tree can be " "manipulated using the up/down arrow keys." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:60 msgid "" "This means that any node can access a singleton named \"PlayerVariables\" " "with:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:73 msgid "" "If the \"Enable\" column is checked (default ``true``) then the singleton " "can simply be accessed directly:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:86 msgid "" "Note that autoload objects (scripts and/or scenes) are accessed just like " "any other node in the scene tree. In fact, if you look at the running scene " "tree, you'll see the autoloaded nodes appear:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:93 msgid "Custom scene switcher" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:95 msgid "" "This tutorial will demonstrate building a scene switcher using autoload. For " "basic scene switching, you can use the :ref:`SceneTree.change_scene() " "` method (see :ref:`doc_scene_tree` for " "details). However, if you need more complex behavior when changing scenes, " "this method provides more functionality." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:101 msgid "" "To begin, download the template from here: :download:`autoload.zip ` and open it in Godot." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:104 msgid "" "The project contains two scenes: ``Scene1.tscn`` and ``Scene2.tscn``. Each " "scene contains a label displaying the scene name and a button with its " "``pressed()`` signal connected. When you run the project, it starts in " "``Scene1.tscn``. However, pressing the button does nothing." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:110 msgid "Global.gd" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:112 msgid "" "Switch to the \"Script\" tab and create a new script called Global.gd. Make " "sure it inherits from ``Node``:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:117 msgid "" "The next step is to add this script to the autoLoad list. Open ``Project > " "Project Settings`` from the menu, switch to the \"AutoLoad\" tab and select " "the script by clicking the browse button or typing its path: ``res://Global." "gd``. Press \"Add\" to add it to the autoload list:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:124 msgid "" "Now whenever we run any scene in the project, this script will always be " "loaded." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:126 msgid "" "Returning to the script, it needs to fetch the current scene in the " "`_ready()` function. Both the current scene (the one with the button) and " "``global.gd`` are children of root, but autoloaded nodes are always first. " "This means that the last child of root is always the loaded scene." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:158 msgid "" "Now we need a function for changing the scene. This function needs to free " "the current scene and replace it with the requested one." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:227 msgid "" "Using :ref:`Object.call_deferred() `, the " "second function will only run once all code from the current scene has " "completed. Thus, the current scene will not be removed while it is still " "being used (i.e. its code is still running)." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:232 msgid "" "Finally, we need to fill the empty callback functions in the two scenes:" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:252 #: ../../docs/tutorials/math/vector_math.rst:264 msgid "and" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:272 msgid "" "Run the project and test that you can switch between scenes by pressing the " "button." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:275 msgid "" "Note: When scenes are small, the transition is instantaneous. However, if " "your scenes are more complex, they may take a noticeable amount of time to " "appear. To learn how to handle this, see the next tutorial: :ref:" "`doc_background_loading`" msgstr "" #: ../../docs/getting_started/editor/index.rst:2 msgid "Editor manual" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:8 #, fuzzy msgid "From Unity to Godot Engine" msgstr "על המנוע גודוט" #: ../../docs/getting_started/editor/unity_to_godot.rst:10 msgid "" "This guide provides an overview of Godot Engine from the viewpoint of a " "Unity user, and aims to help you migrate your existing Unity experience into " "the world of Godot." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:15 msgid "" "This article talks about older versions of Unity. Nestable prefabs ('Nested " "prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " "Godot's scenes, and allow a more Godot-like approach to scene organization." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:133 msgid "License" msgstr "רישיון" #: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:25 #, fuzzy msgid "Windows, macOS, Linux" msgstr "X11 (לינוקס, /*BSD)" #: ../../docs/getting_started/editor/unity_to_godot.rst:25 #, fuzzy msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "X11 (לינוקס, /*BSD)" #: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, PlayStation VR, Gear VR, " "HoloLens" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Notable advantages" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " "games. The pictures below display the default layouts of both editors with " "colored blocks to indicate common functionalities." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " "format, and no metadata. This makes Godot more friendly to VCS systems, such " "as Git, Subversion, or Mercurial." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " "descriptive. It's easier to understand what a scene does at a glance." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" "The Inspector in Godot is more minimal, it shows only properties. Thanks to " "this, objects can expose more useful parameters to the user without having " "to hide functionality in language APIs. As a plus, Godot allows animating " "any of those properties visually. Changing colors, textures, enumerations, " "or even links to resources in real-time is possible without needing to write " "code." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" "The Toolbar at the top of the screen is similar in both editors, offering " "control over project playback. Projects in Godot run in a separate window, " "rather than inside the editor (but the tree and objects can still be " "explored in the debugger window)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "This approach has several advantages:" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:78 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:79 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " "the game is closed. This allows fantastic workflows, like creating levels " "while you play them." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "The editor is more stable because the game runs in a separate process." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "The running game can be explored from different angles by toggling the " "\"Camera Override\" button in the editor viewport, which will switch between " "using the editor view and the game camera view." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:83 msgid "" "Finally, Godot's top toolbar includes a menu for remote debugging. These " "options allow deployment to a device (connected phone, tablet, or browser " "via HTML5), and debugging/live editing on it after the game is exported." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:88 msgid "The scene system" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:90 msgid "" "This is the most important difference between Unity and Godot and the " "favorite feature of most Godot users." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:92 msgid "" "Working on a 'level' in Unity usually means embedding all the required " "assets in a scene and linking them together with components and scripts." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:95 msgid "" "Godot's scene system is superficially similar to Unity. A 'level' consists " "of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " "etc. However, in Godot the nodes are arranged in a tree. Each node can have " "multiple children, which makes each a subscene of the main scene. This means " "you can compose a whole scene with different scenes stored in different " "files." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:98 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:100 msgid "Bricks" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Coins" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "The player" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The enemies" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:105 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " "level and then multiple instances of coins all over the level. You would " "then add various components to each element to link them and add logic in " "the level: For example, you'd add a BoxCollider2D to all the elements of the " "scene so that they can collide. This principle is different in Godot." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:110 msgid "" "In Godot, you would split your whole scene into three separate, smaller " "scenes, and instance them in the main scene." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:112 msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:114 msgid "" "Consider the player as an element we'd like to use in different parent " "scenes (for instance 'level' scenes). In our case, the player element needs " "at least an AnimatedSprite node. This node contains the sprite textures " "necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:116 msgid "**A scene for the Enemy.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:118 msgid "" "An enemy is also an element we'd like to use in several scenes. It's almost " "the same as the Player node. The only differences are the script (it needs " "'AI' routines to generate the enemy's behavior) and the sprite textures used " "by the AnimatedSprite node." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:122 msgid "**A Level scene.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:124 msgid "" "A Level scene is composed of Bricks (for platforms), Coins (for the player " "to collect) and a number of instances of the Enemy scene. Each instance is a " "node in the Level scene tree. These instances are separate enemies, which " "initially have shared behavior and appearance as defined in the Enemy scene. " "You can set different properties for each Enemy node (to change its color, " "for example)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:128 msgid "" "4. **A Main scene.** The Main scene would be composed of one root node with " "2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:134 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " "collidable like Unity does. Instead, you make this node a *child* of a new " "specific node that has collision properties. Godot features various " "collision types nodes, depending on the usage (see the :ref:`Physics " "introduction `)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:139 msgid "" "What are the advantages of this system? Wouldn't this system potentially " "increase the depth of the scene tree? And doesn't Unity already allow you to " "organize GameObjects by putting them inside empty GameObjects?" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:141 msgid "" "Godot's system is closer to the well-known object-oriented paradigm: Godot " "provides a number of nodes which are not clearly \"Game Objects\", but they " "provide their children with their own capabilities: this is inheritance." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" "Godot allows the extraction of a subtree of a scene to make it a scene of " "its own. So if a scene tree gets too deep, it can be split into smaller " "subtrees. This is better for reusability, as you can include any subtree as " "a child of any node. Putting multiple GameObjects in an empty GameObject in " "Unity does not provide the same functionality." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:145 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:149 msgid "" "There is no perfect project architecture. Any architecture can be made to " "work in either Unity and Godot." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:152 msgid "" "However, a common architecture for Unity projects is to have one Assets " "folder in the root directory that contains various folders, one per type of " "asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:155 msgid "" "Since Godot allows splitting scenes into smaller scenes, each scene and " "subscene existing as a file in the project, we recommend organizing your " "project a bit differently. This wiki provides a page for this: :ref:" "`doc_project_organization`." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:160 msgid "Where are my prefabs?" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:162 msgid "" "A prefab as provided by Unity is a 'template' element of the scene. It is " "reusable, and each instance of the prefab that exists in the scene has an " "existence of its own, but all of them have the same properties as defined by " "the prefab." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:166 msgid "" "Godot does not provide prefabs as such, but the same functionality is " "provided by its scene system: The scene system is organized as a tree. Godot " "allows you to save any subtree of a scene as a scene file. This new scene " "can then be instanced as many times as you want, as a child of any node. 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." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:173 msgid "" "To be precise, you can modify the parameters of an instance in the Inspector " "panel. The nodes that compose this instance are initially locked. You can " "unlock them if you need to by right-clicking the instance in the Scene tree " "and selecting \"Editable children\" in the menu. You don't need to do this " "to add *new* child nodes to this node. Remember that any new children will " "belong to the instance, not to the 'template' scene on disk. If you want to " "add new children to every instance of your 'template' scene, then you should " "add them in the 'template' scene." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:183 msgid "Glossary correspondence" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:185 msgid "GameObject -> Node" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "Add a component -> Inheriting" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Prefab -> Reusable Scene file" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:191 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:194 msgid "Design" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:196 msgid "" "Unity supports C#. C# benefits from its integration with Visual Studio and " "has desirable features such as static typing." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:198 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" "`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " "take long to learn: Between one evening for an experienced programmer and a " "week for a complete beginner." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:204 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behavior to the GameObject: For example, you can attach a " "script so that it reacts to the player's controls, and another that controls " "its specific game logic." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:208 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " "need to attach more scripts to one node, then you may consider two " "solutions, depending on your scene and on what you want to achieve:" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:212 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:215 msgid "" "As you can see, it can be easy to turn a scene tree to a mess. Consider " "splitting any complicated scene into multiple, smaller branches." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:218 msgid "Connections: groups and signals" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:220 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " "functions on all nodes in this group. See more in the :ref:`scripting " "documentation `." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:225 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " "are triggered. See more in the :ref:`signals documentation " "`." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:230 #, fuzzy msgid "Script serialization" msgstr "אנימציות" #: ../../docs/getting_started/editor/unity_to_godot.rst:232 msgid "Unity can handle script serialization in two ways:" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:234 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:237 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " "various engine types `, including :ref:" "`class_Array` and :ref:`class_Dictionary`) using the ``export`` keyword. See " "the :ref:`exports documentation ` for details." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:242 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " "resources: :ref:`class_Resource`. Creating a script that inherits :ref:" "`class_Resource` will allow you to create custom serializable objects. More " "information about resources can be found :ref:`here `." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:247 msgid "Using Godot in C++" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:249 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " "consider Godot Engine's editor as a \"game\" written in C++ using the Godot " "API." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:252 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:4 msgid "Command line tutorial" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:8 msgid "" "Some developers like using the command line extensively. Godot is designed " "to be friendly to them, so here are the steps for working entirely from the " "command line. Given the engine relies on almost no external libraries, " "initialization times are pretty fast, making it suitable for this workflow." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:15 msgid "Command line reference" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:17 msgid "**General options**" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:20 #: ../../docs/getting_started/editor/command_line_tutorial.rst:34 #: ../../docs/getting_started/editor/command_line_tutorial.rst:62 #: ../../docs/getting_started/editor/command_line_tutorial.rst:90 #: ../../docs/getting_started/editor/command_line_tutorial.rst:120 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:51 #: ../../docs/development/cpp/configuring_an_ide/qt_creator.rst:59 msgid "Command" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:20 #: ../../docs/getting_started/editor/command_line_tutorial.rst:34 #: ../../docs/getting_started/editor/command_line_tutorial.rst:62 #: ../../docs/getting_started/editor/command_line_tutorial.rst:90 #: ../../docs/getting_started/editor/command_line_tutorial.rst:120 #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:141 #: ../../docs/getting_started/scripting/creating_script_templates.rst:125 #: ../../docs/getting_started/workflow/assets/importing_images.rst:94 #: ../../docs/tutorials/inputs/inputevent.rst:130 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:51 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:476 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:522 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:586 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:15 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:94 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:139 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:191 #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:309 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:17 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:52 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:110 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:214 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:53 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:65 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:240 #: ../../docs/tutorials/misc/binary_serialization_api.rst:95 #: ../../docs/tutorials/misc/binary_serialization_api.rst:104 #: ../../docs/tutorials/misc/binary_serialization_api.rst:113 #: ../../docs/tutorials/misc/binary_serialization_api.rst:122 #: ../../docs/tutorials/misc/binary_serialization_api.rst:135 #: ../../docs/tutorials/misc/binary_serialization_api.rst:146 #: ../../docs/tutorials/misc/binary_serialization_api.rst:161 #: ../../docs/tutorials/misc/binary_serialization_api.rst:174 #: ../../docs/tutorials/misc/binary_serialization_api.rst:193 #: ../../docs/tutorials/misc/binary_serialization_api.rst:208 #: ../../docs/tutorials/misc/binary_serialization_api.rst:223 #: ../../docs/tutorials/misc/binary_serialization_api.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:267 #: ../../docs/tutorials/misc/binary_serialization_api.rst:298 #: ../../docs/tutorials/misc/binary_serialization_api.rst:313 #: ../../docs/tutorials/misc/binary_serialization_api.rst:322 #: ../../docs/tutorials/misc/binary_serialization_api.rst:333 #: ../../docs/tutorials/misc/binary_serialization_api.rst:343 #: ../../docs/tutorials/misc/binary_serialization_api.rst:362 #: ../../docs/tutorials/misc/binary_serialization_api.rst:374 #: ../../docs/tutorials/misc/binary_serialization_api.rst:386 #: ../../docs/tutorials/misc/binary_serialization_api.rst:399 #: ../../docs/tutorials/misc/binary_serialization_api.rst:410 #: ../../docs/tutorials/misc/binary_serialization_api.rst:421 #: ../../docs/tutorials/misc/binary_serialization_api.rst:429 #: ../../docs/tutorials/misc/binary_serialization_api.rst:442 #: ../../docs/tutorials/misc/binary_serialization_api.rst:455 #: ../../docs/tutorials/misc/binary_serialization_api.rst:470 msgid "Description" msgstr "תיאור" #: ../../docs/getting_started/editor/command_line_tutorial.rst:22 msgid "``-h``, ``--help``, ``/?``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:22 msgid "Display the list of command line options." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:24 msgid "``--version``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:24 msgid "Display the version string." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:26 msgid "``-v``, ``--verbose``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:26 msgid "Use verbose stdout mode." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:28 msgid "``--quiet``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:28 msgid "Quiet mode, silences stdout messages. Errors are still displayed." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:31 msgid "**Run options**" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:36 msgid "``-e``, ``--editor``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:36 msgid "" "Start the editor instead of running the scene (:ref:`tools " "` must be enabled)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:38 msgid "``-p``, ``--project-manager``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:38 msgid "" "Start the project manager, even if a project is auto-detected (:ref:`tools " "` must be enabled)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:40 msgid "``-q``, ``--quit``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:40 msgid "Quit after the first iteration." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:42 msgid "``-l ``, ``--language ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:42 msgid "" "Use a specific locale ( being a two-letter code). See :ref:" "`doc_locales` for more details." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:44 msgid "``--path ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:44 msgid "Path to a project ( must contain a 'project.godot' file)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:46 msgid "``-u``, ``--upwards``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:46 msgid "Scan folders upwards for 'project.godot' file." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:48 msgid "``--main-pack ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:48 msgid "Path to a pack (.pck) file to load." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:50 msgid "``--render-thread ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:50 msgid "" "Render thread mode ('unsafe', 'safe', 'separate'). See :ref:`Thread Model " "` for more " "details." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:52 msgid "``--remote-fs
``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:52 msgid "Remote filesystem (``[:]`` address)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:54 msgid "``--audio-driver ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:54 msgid "" "Audio driver. Use ``--help`` first to display the list of available drivers." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:56 msgid "``--video-driver ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:56 msgid "" "Video driver. Use ``--help`` first to display the list of available drivers." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:59 msgid "**Display options**" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:64 msgid "``-f``, ``--fullscreen``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:64 msgid "Request fullscreen mode." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:66 msgid "``-m``, ``--maximized``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:66 msgid "Request a maximized window." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:68 msgid "``-w``, ``--windowed``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:68 msgid "Request windowed mode." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:70 msgid "``-t``, ``--always-on-top``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:70 msgid "Request an always-on-top window." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:72 msgid "``--resolution x``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:72 msgid "Request window resolution." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:74 msgid "``--position ,``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:74 msgid "Request window position." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:76 msgid "``--low-dpi``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:76 msgid "Force low-DPI mode (macOS and Windows only)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:78 msgid "``--no-window``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:78 msgid "" "Disable window creation (Windows only). Useful together with ``--script``." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:81 msgid "**Debug options**" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:85 msgid "" "Debug options are only available in the editor and debug export templates " "(they require ``debug`` or ``release_debug`` build targets, see :ref:" "`doc_introduction_to_the_buildsystem_target` for more details)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:92 msgid "``-d``, ``--debug``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:92 msgid "Debug (local stdout debugger)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:94 msgid "``-b``, ``--breakpoints``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:94 msgid "" "Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 " "instead)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:96 msgid "``--profiling``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:96 msgid "Enable profiling in the script debugger." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:98 msgid "``--remote-debug
``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:98 msgid "Remote debug (``:`` address)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:100 msgid "``--debug-collisions``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:100 msgid "Show collision shapes when running the scene." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:102 msgid "``--debug-navigation``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:102 msgid "Show navigation polygons when running the scene." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:104 msgid "``--frame-delay ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:104 msgid "Simulate high CPU load (delay each frame by milliseconds)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:106 msgid "``--time-scale ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:106 msgid "Force time scale (higher values are faster, 1.0 is normal speed)." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:108 msgid "``--disable-render-loop``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:108 msgid "" "Disable render loop so rendering only occurs when called explicitly from " "script." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:110 msgid "``--disable-crash-handler``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:110 msgid "Disable crash handler when supported by the platform code." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:112 msgid "``--fixed-fps ``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:112 msgid "" "Force a fixed number of frames per second. This setting disables real-time " "synchronization." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:114 msgid "``--print-fps``" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:114 msgid "Print the frames per second to the stdout." msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:117 msgid "**Standalone tools**" msgstr "" #: ../../docs/getting_started/editor/command_line_tutorial.rst:122 msgid "``-s