# Godot Engine Documentation in Serbian (latin) # Copyright (C) 2014-2022, 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. # # BLu , 2018. # Marko Mihajlović , 2022. # Milos Ponjavusic , 2018. # Petar Ples , 2018. # Vojislav Bajakic , 2018. # msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" "POT-Creation-Date: 2024-05-10 15:20+0200\n" "PO-Revision-Date: 2022-02-26 10:27+0000\n" "Last-Translator: Marko Mihajlović \n" "Language-Team: Serbian (latin) \n" "Language: sr_Latn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.11.1-dev\n" #: ../../docs/_templates/versions.html:26 #: ../../docs/tutorials/performance/cpu_optimization.rst:149 msgid "Languages" msgstr "" #: ../../docs/_templates/versions.html:32 msgid "Versions" msgstr "" #: ../../docs/_templates/versions.html:39 msgid "On Read the Docs" msgstr "" #: ../../docs/_templates/versions.html:41 #, fuzzy msgid "Project Home" msgstr "Uvod / Početak" #: ../../docs/_templates/versions.html:44 msgid "Builds" msgstr "" #: ../../docs/_templates/versions.html:47 msgid "Downloads" msgstr "" #: ../../docs/index.rst:65 ../../docs/about/docs_changelog.rst:179 #: ../../docs/tutorials/inputs/mouse_and_input_coordinates.rst:7 #: ../../docs/tutorials/scripting/gdscript/gdscript_advanced.rst:7 #: ../../docs/contributing/development/core_and_modules/variant_class.rst:7 msgid "About" msgstr "O Godot-u" #: ../../docs/index.rst:79 #: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:13 #: ../../docs/contributing/documentation/contributing_to_the_documentation.rst:15 msgid "Getting started" msgstr "Uvod / Početak" #: ../../docs/index.rst:94 msgid "Manual" msgstr "" #: ../../docs/index.rst:128 msgid "Contributing" msgstr "" #: ../../docs/index.rst:140 ../../docs/about/docs_changelog.rst:191 msgid "Community" msgstr "Zajednica" #: ../../docs/index.rst:151 msgid "Class reference" msgstr "" #: ../../docs/index.rst:2 #, fuzzy msgid "Godot Docs – *4.2* branch" msgstr "Godot dokumentacija - *glavna* grana" #: ../../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:12 msgid "" "This documentation is translated from the `original English one `_ by community members on `Weblate `_." msgstr "" #: ../../docs/index.rst:16 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 "" #: ../../docs/index.rst:21 msgid "" "For the time being, localized translations are only available for the " "\"stable\" branch. You can still view the English documentation for other " "engine versions using the \"Read the Docs\" panel at the bottom of the " "sidebar." msgstr "" #: ../../docs/index.rst:26 #, 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 "" "Dobrodošli na oficijalnu dokumentaciju Godo Endžina, endžina za izradu " "igara, koji je besplatan otvorenog koda i vođen od stane zajednice. Ako prvi " "put pristupate dokumentaciji, preporucujemo vam da procitate više o tome na :" "ref:`introduction page `, kako bi ste imali uvid u to šta " "vam ova dokumentacija pruža." #: ../../docs/index.rst:32 #, fuzzy msgid "" "The table of contents 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 "" "Index ili tabelu sadržaja, koju možete pogledati ispod ili u sajdbaru, vam " "omogućava da lako pretražite dokumentaciju po temama koje vas interesuju. " "Takođe možete koristiti funkciju pretraži u gornjem levom ćošku." #: ../../docs/index.rst:36 msgid "Get involved" msgstr "" #: ../../docs/index.rst:38 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 "" "Godo Endžin je projekat otvorenog koda razvijen od strane zajednice " "volontera. Timu koji se bavi dokumentacijom su uvek dobrodošli vaši " "komentari i pomoć da se unaprede tutorijali i reference klasa. Ako nešto ne " "razumete ili ne možete pronaći u dokumentaciji, pomozite nam da učinimo " "dokumentaciju boljom, tako što ćete nas kontaktirati!" #: ../../docs/index.rst:44 msgid "" "Submit an issue or pull request on the `GitHub repository `_, help us `translate the documentation " "`_ into your language, or " "talk to us on the ``#documentation`` channel on the `Godot Contributors Chat " "`_!" msgstr "" #: ../../docs/index.rst:50 msgid "weblate_widget" msgstr "" #: ../../docs/:0 msgid "Translation status" msgstr "" #: ../../docs/index.rst:52 #, fuzzy msgid "Offline documentation" msgstr "Organizacija dokumentacije" #: ../../docs/index.rst:54 msgid "" "To browse the documentation offline, you can `download an HTML copy `__ for offline reading (updated every Monday). " "Extract the ZIP archive then open the top-level ``index.html`` in a web " "browser." msgstr "" #: ../../docs/index.rst:58 msgid "" "For mobile devices or e-readers, you can also `download an ePub copy " "`__ for offline reading (updated every " "Monday). Extract the ZIP archive then open the ``GodotEngine.epub`` file in " "an e-book reader application." msgstr "" #: ../../docs/about/introduction.rst:4 #: ../../docs/getting_started/introduction/index.rst:8 #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:4 #: ../../docs/tutorials/best_practices/project_organization.rst:7 #: ../../docs/tutorials/best_practices/version_control_systems.rst:7 #: ../../docs/tutorials/editor/managing_editor_features.rst:9 #: ../../docs/tutorials/2d/2d_transforms.rst:7 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:7 #: ../../docs/tutorials/2d/2d_meshes.rst:9 #: ../../docs/tutorials/2d/2d_sprite_animation.rst:7 #: ../../docs/tutorials/2d/2d_antialiasing.rst:16 #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:7 #: ../../docs/tutorials/2d/2d_movement.rst:7 #: ../../docs/tutorials/2d/using_tilesets.rst:7 #: ../../docs/tutorials/2d/using_tilemaps.rst:13 #: ../../docs/tutorials/3d/using_transforms.rst:7 #: ../../docs/tutorials/3d/3d_text.rst:7 #: ../../docs/tutorials/3d/3d_rendering_limitations.rst:7 #: ../../docs/tutorials/3d/standard_material_3d.rst:7 #: ../../docs/tutorials/3d/lights_and_shadows.rst:7 #: ../../docs/tutorials/3d/particles/index.rst:10 #: ../../docs/tutorials/3d/high_dynamic_range.rst:9 #: ../../docs/tutorials/3d/3d_antialiasing.rst:16 #: ../../docs/tutorials/3d/using_multi_mesh_instance.rst:9 #: ../../docs/tutorials/3d/mesh_lod.rst:22 #: ../../docs/tutorials/3d/using_gridmaps.rst:7 #: ../../docs/tutorials/animation/2d_skeletons.rst:9 #: ../../docs/tutorials/animation/animation_tree.rst:7 #: ../../docs/tutorials/audio/audio_buses.rst:9 #: ../../docs/tutorials/audio/audio_streams.rst:9 #: ../../docs/tutorials/audio/sync_with_audio.rst:9 #: ../../docs/tutorials/export/feature_tags.rst:7 #: ../../docs/tutorials/io/saving_games.rst:7 #: ../../docs/tutorials/io/binary_serialization_api.rst:9 #: ../../docs/tutorials/i18n/internationalizing_games.rst:7 #: ../../docs/tutorials/i18n/pseudolocalization.rst:7 #: ../../docs/tutorials/inputs/input_examples.rst:7 #: ../../docs/tutorials/math/vector_math.rst:7 #: ../../docs/tutorials/math/matrices_and_transforms.rst:7 #: ../../docs/tutorials/networking/ssl_certificates.rst:9 #: ../../docs/tutorials/performance/index.rst:7 #: ../../docs/tutorials/performance/general_optimization.rst:7 #: ../../docs/tutorials/performance/gpu_optimization.rst:7 #: ../../docs/tutorials/physics/using_area_2d.rst:7 #: ../../docs/tutorials/physics/using_character_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/platform/android/android_plugin.rst:7 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:13 #: ../../docs/tutorials/plugins/editor/3d_gizmos.rst:9 #: ../../docs/tutorials/rendering/viewports.rst:7 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:7 #: ../../docs/tutorials/scripting/gdextension/what_is_gdextension.rst:7 #: ../../docs/tutorials/scripting/gdextension/gdextension_cpp_example.rst:7 #: ../../docs/tutorials/scripting/debug/custom_performance_monitors.rst:7 #: ../../docs/tutorials/scripting/pausing_games.rst:7 #: ../../docs/tutorials/scripting/filesystem.rst:7 #: ../../docs/tutorials/scripting/singletons_autoload.rst:7 #: ../../docs/tutorials/scripting/scene_tree.rst:7 #: ../../docs/tutorials/scripting/scene_unique_nodes.rst:7 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:7 #: ../../docs/tutorials/shaders/your_first_shader/your_first_2d_shader.rst:7 #: ../../docs/tutorials/shaders/shader_materials.rst:7 #: ../../docs/tutorials/shaders/screen-reading_shaders.rst:7 #: ../../docs/tutorials/shaders/using_viewport_as_texture.rst:7 #: ../../docs/tutorials/shaders/custom_postprocessing.rst:7 #: ../../docs/tutorials/shaders/advanced_postprocessing.rst:7 #: ../../docs/tutorials/ui/bbcode_in_richtextlabel.rst:7 #: ../../docs/contributing/development/best_practices_for_engine_contributors.rst:7 #: ../../docs/contributing/development/core_and_modules/2d_coordinate_systems.rst:7 #: ../../docs/contributing/development/core_and_modules/custom_godot_servers.rst:7 #: ../../docs/contributing/development/core_and_modules/custom_resource_format_loaders.rst:7 #: ../../docs/contributing/development/core_and_modules/custom_audiostreams.rst:7 #: ../../docs/contributing/development/editor/editor_style_guide.rst:7 #: ../../docs/community/asset_library/submitting_to_assetlib.rst:7 msgid "Introduction" msgstr "Uvod" #: ../../docs/about/introduction.rst:11 #, fuzzy 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 "" "Dobrodošli u zvaničnu dokumentaciju Godot Engine-a, besplatnog 2D i 3D " "pokretača igre otvorenog koda. Iza tog dugog objašnjenja, krije se moćna " "alatka, ali prilagođena korisniku, koju možete koristiti da razvijete bilo " "kakvu igru, za bilo koju platformu, uz nepostojeća ograničenja." #: ../../docs/about/introduction.rst:16 #, fuzzy msgid "" "This page gives a broad overview of the engine and of this documentation, so " "that you know where to start if you are a beginner or where to look if you " "need information on a specific feature." msgstr "" "Ova stranica ima za cilj da naširoko predstavi pokretač igre i sadržaj ove " "dokumentacije, tako da znate odakle da krenete ako ste početnik ili gdje da " "tražite ako su vam potrebne informacije o posebnim funkcijama." #: ../../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, " "consider checking them out. Otherwise, :ref:`Getting Started " "` is a great starting point." msgstr "" #: ../../docs/about/introduction.rst:28 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 and `Forum `_." msgstr "" #: ../../docs/about/introduction.rst:34 msgid "About Godot Engine" msgstr "O Godot pokretaču igre" #: ../../docs/about/introduction.rst:36 #, fuzzy msgid "" "A game engine is a complex tool and difficult to present in a few words. " "Here's a quick synopsis, which you are free to reuse if you need a quick " "write-up about Godot Engine:" msgstr "" "Pokretač igre je složen alat i zbog toga je teško predstaviti Godot u par " "riječi. Ipak, prilažemo našu PR prezentaciju, koju slobodno možete koristiti " "ako vam je potreban kratak članak o Godot pokretaču igre." #: ../../docs/about/introduction.rst:40 #, fuzzy 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 that users can focus on making games without having to " "reinvent the wheel. Games can be exported with one click to a number of " "platforms, including the major desktop platforms (Linux, macOS, Windows), " "mobile platforms (Android, iOS), as well as Web-based platforms and consoles." msgstr "" "Godot je pokretač igre koji je ispunjen funkcijama, sa mogućnostima rada na " "više platformi, koji se koristi za pravljenje 2D i 3D igara iz jednog " "sučelja. Godot pruža obiman skup često korištenih alata, tako da se svaki " "korisnik može fokusirati na pravljenje igara bez potrebe za \"izmišljanjem " "točka\". Igre se mogu izvesti jednim klikom na više platformi, uključujući " "najpoznatije desktop platforme (Linux, macOS, Windows) kao i mobilne " "(Android, iOS) te platforme bazirane na web-u (HTML5)." #: ../../docs/about/introduction.rst:47 #, fuzzy msgid "" "Godot is completely free and open source under the :ref:`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 `Godot Foundation `_ not-for-" "profit." msgstr "" "Godo je otvorenog koda i u potpunosti besplatan, objavljen pod veoma " "popustljivom MIT licencom. Bez ikakvih obaveza, dodatnih plaćanja, bilo " "čega. Igre koje korisnici naprave su njihove, sve do posljednje linije koda. " "Godoov razvoj je u potpunosti nezavisan i nošen zajednicom, dajući moć " "korisnicima da pomognu razvoj pokretača igre kako bi on ispunio njihova " "očekivanja. Podržan je od strane 'Software Freedom Conservancy' i neprofitan." #: ../../docs/about/introduction.rst:57 msgid "Organization of the documentation" msgstr "Organizacija dokumentacije" #: ../../docs/about/introduction.rst:59 msgid "This documentation is organized into several sections:" msgstr "" #: ../../docs/about/introduction.rst:61 #, fuzzy msgid "" "**About** 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` sekcija sadrži ovaj uvod kao i informacije o pokretaču " "igre, istoriji, licenci, autorima itd. Takođe sadrži :ref:`doc_faq`." #: ../../docs/about/introduction.rst:64 #, fuzzy msgid "" "**Getting Started** contains all 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. " "**This is the best place to start if you're new!**" msgstr "" ":ref:`sec-learn` sekcija je srž ove dokumentacije, jer sadrži sve potrebne " "podatke o korištenju pokretača igre radi pravljenja igara. Započinje sa :ref:" "`Step by step ` uputstvom koji bi trebao da bude " "početna tačka za sve nove korisnike." #: ../../docs/about/introduction.rst:68 #, fuzzy msgid "" "The **Manual** can be read or referenced as needed, in any order. It " "contains feature-specific tutorials and documentation." msgstr "" "S druge strane, :ref:`sec-tutorials` sekcija se može čitati u bilo kojem " "redosljedu. Sadrži mnoga uputstva i dokumentaciju koja objašnjava " "pojedinačne funkcije." #: ../../docs/about/introduction.rst:70 msgid "" "**Contributing** gives information related to contributing to Godot, whether " "to the core engine, documentation, demos or other parts. It describes how to " "report bugs, how contributor workflows are organized, etc. It also contains " "sections intended for advanced users and contributors, with information on " "compiling the engine, contributing to the editor, or developing C++ modules." msgstr "" #: ../../docs/about/introduction.rst:76 #, fuzzy msgid "" "**Community** is dedicated to the life of Godot's community. It points to " "various community channels like the `Godot Contributors Chat `_ and `Discord`_ and contains a list of recommended third-" "party tutorials and materials outside of this documentation." msgstr "" ":ref:`sec-community` poglavlje sadrži informacije vezane za doprinos razvoja " "endžina za igre i života zajednice, tj. kako prijaviti greške, pomoći sa " "dokumentacijom itd. Takođe daje uputstva za razne kanale koje zajednica " "koristi, IRC i Discord,te sadrži listu preporučenih tutorijala napravljenih " "od strane spoljnih saradnika." #: ../../docs/about/introduction.rst:81 msgid "" "Finally, the **Class reference** documents the full Godot API, also " "available directly within the engine's script editor. You can find " "information on all classes, functions, signals and so on here." msgstr "" #: ../../docs/about/introduction.rst:85 #, fuzzy msgid "" "In addition to this documentation, you may also want to take a look at the " "various `Godot demo projects `_." msgstr "" "Uz ovu dokumentaciju takođe možete pogledati različite Godo demo projekte " "`Godot demo projects `_." #: ../../docs/about/introduction.rst:89 #, fuzzy msgid "About this documentation" msgstr "O dokumentaciji" #: ../../docs/about/introduction.rst:91 msgid "" "Members of the Godot Engine community continuously write, correct, edit, and " "improve this documentation. We are always looking for more help. You can " "also contribute by opening Github issues or translating the documentation " "into your language. If you are interested in helping, see :ref:`Ways to " "contribute ` and :ref:`Writing documentation " "`, or get in touch with the " "`Documentation team `_ on " "`Godot Contributors Chat `_." msgstr "" #: ../../docs/about/introduction.rst:99 #, fuzzy msgid "" "All documentation content is licensed 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*\" unless otherwise noted." msgstr "" "Sav sadržaj je pod popustljivom Commons Attribution 3.0 (`CC-BY 3.0 " "`_) licencom, sa atribucijom " "\"Juan Linietsky, Ariel Manzur and the Godot Engine community\"." #: ../../docs/about/introduction.rst:104 #, fuzzy msgid "*Have fun reading and making games with Godot Engine!*" msgstr "Uživajte čitajući i praveći igre u Godot pokretaču igre!" #: ../../docs/about/list_of_features.rst:4 msgid "List of features" msgstr "" #: ../../docs/about/list_of_features.rst:6 msgid "This page aims to list **all** features currently supported by Godot." msgstr "" #: ../../docs/about/list_of_features.rst:10 msgid "" "This page lists features supported by the current stable version of Godot. " "Some of these features may not be available in the `LTS release series (3.x) " "`__." msgstr "" #: ../../docs/about/list_of_features.rst:15 msgid "Platforms" msgstr "" #: ../../docs/about/list_of_features.rst:19 msgid "" "See :ref:`doc_system_requirements` for hardware and software version " "requirements." msgstr "" #: ../../docs/about/list_of_features.rst:21 msgid "**Can run both the editor and exported projects:**" msgstr "" #: ../../docs/about/list_of_features.rst:23 msgid "Windows (x86, 64-bit and 32-bit)." msgstr "" #: ../../docs/about/list_of_features.rst:24 msgid "macOS (x86 and ARM, 64-bit only)." msgstr "" #: ../../docs/about/list_of_features.rst:25 msgid "Linux (x86 and ARM, 64-bit and 32-bit)." msgstr "" #: ../../docs/about/list_of_features.rst:27 msgid "" "Binaries are statically linked and can run on any distribution if compiled " "on an old enough base distribution." msgstr "" #: ../../docs/about/list_of_features.rst:29 msgid "" "Official binaries are compiled using the `Godot Engine buildroot `__, allowing for binaries that work across " "common Linux distributions (including LTS variants)." msgstr "" #: ../../docs/about/list_of_features.rst:34 msgid "Android (editor support is experimental)." msgstr "" #: ../../docs/about/list_of_features.rst:35 msgid "" ":ref:`Web browsers `. Experimental in 4.0, using " "Godot 3.x is recommended instead when targeting HTML5." msgstr "" #: ../../docs/about/list_of_features.rst:38 msgid "**Runs exported projects:**" msgstr "" #: ../../docs/about/list_of_features.rst:40 msgid "iOS." msgstr "" #: ../../docs/about/list_of_features.rst:41 msgid ":ref:`Consoles `." msgstr "" #: ../../docs/about/list_of_features.rst:43 msgid "" "Godot aims to be as platform-independent as possible and can be :ref:`ported " "to new platforms ` with relative ease." msgstr "" #: ../../docs/about/list_of_features.rst:48 #: ../../docs/getting_started/step_by_step/scripting_languages.rst:131 msgid "" "Projects written in C# using Godot 4 currently cannot be exported to the web " "platform. To use C# on that platform, consider Godot 3 instead. Android and " "iOS platform support is available as of Godot 4.2, but is experimental and :" "ref:`some limitations apply `." msgstr "" #: ../../docs/about/list_of_features.rst:54 #: ../../docs/about/docs_changelog.rst:153 #: ../../docs/about/docs_changelog.rst:208 #: ../../docs/tutorials/editor/external_editor.rst:38 #: ../../docs/contributing/development/compiling/compiling_with_dotnet.rst:189 msgid "Editor" msgstr "" #: ../../docs/about/list_of_features.rst:56 #: ../../docs/about/list_of_features.rst:494 msgid "**Features:**" msgstr "" #: ../../docs/about/list_of_features.rst:58 msgid "Scene tree editor." msgstr "" #: ../../docs/about/list_of_features.rst:59 #, fuzzy msgid "Built-in script editor." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:60 msgid "" "Support for :ref:`external script editors ` such as " "Visual Studio Code or Vim." msgstr "" #: ../../docs/about/list_of_features.rst:62 msgid "GDScript :ref:`debugger `." msgstr "" #: ../../docs/about/list_of_features.rst:64 msgid "Support for debugging in threads is available since 4.2." msgstr "" #: ../../docs/about/list_of_features.rst:65 msgid "" "Visual profiler with CPU and GPU time indications for each step of the " "rendering pipeline." msgstr "" #: ../../docs/about/list_of_features.rst:67 msgid "" "Performance monitoring tools, including :ref:`custom performance monitors " "`." msgstr "" #: ../../docs/about/list_of_features.rst:69 msgid "Live script reloading." msgstr "" #: ../../docs/about/list_of_features.rst:70 msgid "Live scene editing." msgstr "" #: ../../docs/about/list_of_features.rst:72 msgid "" "Changes will reflect in the editor and will be kept after closing the " "running project." msgstr "" #: ../../docs/about/list_of_features.rst:74 msgid "Remote inspector." msgstr "" #: ../../docs/about/list_of_features.rst:76 msgid "" "Changes won't reflect in the editor and won't be kept after closing the " "running project." msgstr "" #: ../../docs/about/list_of_features.rst:78 msgid "Live camera replication." msgstr "" #: ../../docs/about/list_of_features.rst:80 msgid "Move the in-editor camera and see the result in the running project." msgstr "" #: ../../docs/about/list_of_features.rst:82 msgid "Built-in offline class reference documentation." msgstr "" #: ../../docs/about/list_of_features.rst:83 msgid "Use the editor in dozens of languages contributed by the community." msgstr "" #: ../../docs/about/list_of_features.rst:85 msgid "**Plugins:**" msgstr "" #: ../../docs/about/list_of_features.rst:87 msgid "" "Editor plugins can be downloaded from the :ref:`asset library " "` to extend editor functionality." msgstr "" #: ../../docs/about/list_of_features.rst:89 msgid "" ":ref:`Create your own plugins ` using GDScript to add " "new features or speed up your workflow." msgstr "" #: ../../docs/about/list_of_features.rst:91 msgid "" ":ref:`Download projects from the asset library ` " "in the Project Manager and import them directly." msgstr "" #: ../../docs/about/list_of_features.rst:95 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.1.rst:120 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.2.rst:128 #: ../../docs/tutorials/2d/index.rst:12 ../../docs/tutorials/3d/index.rst:14 #: ../../docs/tutorials/performance/thread_safe_apis.rst:55 #: ../../docs/tutorials/rendering/index.rst:2 #: ../../docs/tutorials/rendering/viewports.rst:174 msgid "Rendering" msgstr "" #: ../../docs/about/list_of_features.rst:97 msgid "" "3 rendering *methods* (running over 2 rendering *drivers*) are available:" msgstr "" #: ../../docs/about/list_of_features.rst:99 msgid "" "**Forward+**, running over Vulkan 1.0 (with optional Vulkan 1.1 and 1.2 " "features). The most advanced graphics backend, suited for desktop platforms " "only. Used by default on desktop platforms." msgstr "" #: ../../docs/about/list_of_features.rst:102 msgid "" "**Forward Mobile**, running over Vulkan 1.0 (with optional Vulkan 1.1 and " "1.2 features). Less features, but renders simple scenes faster. Suited for " "mobile and desktop platforms. Used by default on mobile platforms." msgstr "" #: ../../docs/about/list_of_features.rst:105 msgid "" "**Compatibility**, running over OpenGL 3.3 / OpenGL ES 3.0 / WebGL 2.0. The " "least advanced graphics backend, suited for low-end desktop and mobile " "platforms. Used by default on the web platform." msgstr "" #: ../../docs/about/list_of_features.rst:110 msgid "2D graphics" msgstr "" #: ../../docs/about/list_of_features.rst:112 msgid "Sprite, polygon and line rendering." msgstr "" #: ../../docs/about/list_of_features.rst:114 msgid "" "High-level tools to draw lines and polygons such as :ref:`class_Polygon2D` " "and :ref:`class_Line2D`, with support for texturing." msgstr "" #: ../../docs/about/list_of_features.rst:117 msgid "AnimatedSprite2D as a helper for creating animated sprites." msgstr "" #: ../../docs/about/list_of_features.rst:118 msgid "Parallax layers." msgstr "" #: ../../docs/about/list_of_features.rst:120 msgid "Pseudo-3D support including preview in the editor." msgstr "" #: ../../docs/about/list_of_features.rst:122 msgid "" ":ref:`2D lighting ` with normal maps and specular " "maps." msgstr "" #: ../../docs/about/list_of_features.rst:124 msgid "Point (omni/spot) and directional 2D lights." msgstr "" #: ../../docs/about/list_of_features.rst:125 msgid "Hard or soft shadows (adjustable on a per-light basis)." msgstr "" #: ../../docs/about/list_of_features.rst:126 msgid "" "Custom shaders can access a real-time :abbr:`SDF (Signed Distance Field)` " "representation of the 2D scene based on :ref:`class_LightOccluder2D` nodes, " "which can be used for improved 2D lighting effects including 2D global " "illumination." msgstr "" #: ../../docs/about/list_of_features.rst:130 msgid "" ":ref:`Font rendering ` using bitmaps, rasterization " "using FreeType or multi-channel signed distance fields (MSDF)." msgstr "" #: ../../docs/about/list_of_features.rst:133 msgid "" "Bitmap fonts can be exported using tools like BMFont, or imported from " "images (for fixed-width fonts only)." msgstr "" #: ../../docs/about/list_of_features.rst:135 msgid "" "Dynamic fonts support monochrome fonts as well as colored fonts (e.g. for " "emoji). Supported formats are TTF, OTF, WOFF1 and WOFF2." msgstr "" #: ../../docs/about/list_of_features.rst:137 msgid "" "Dynamic fonts support optional font outlines with adjustable width and color." msgstr "" #: ../../docs/about/list_of_features.rst:138 msgid "" "Dynamic fonts support variable fonts and OpenType features including " "ligatures." msgstr "" #: ../../docs/about/list_of_features.rst:139 msgid "" "Dynamic fonts support simulated bold and italic when the font file lacks " "those styles." msgstr "" #: ../../docs/about/list_of_features.rst:141 msgid "" "Dynamic fonts support oversampling to keep fonts sharp at higher resolutions." msgstr "" #: ../../docs/about/list_of_features.rst:142 msgid "" "Dynamic fonts support subpixel positioning to make fonts crisper at low " "sizes." msgstr "" #: ../../docs/about/list_of_features.rst:143 msgid "" "Dynamic fonts support LCD subpixel optimizations to make fonts even crisper " "at low sizes." msgstr "" #: ../../docs/about/list_of_features.rst:144 msgid "" "Signed distance field fonts can be scaled at any resolution without " "requiring re-rasterization. Multi-channel usage makes SDF fonts scale down " "to lower sizes better compared to monochrome SDF fonts." msgstr "" #: ../../docs/about/list_of_features.rst:148 msgid "" "GPU-based :ref:`particles ` with support for :ref:" "`custom particle shaders `." msgstr "" #: ../../docs/about/list_of_features.rst:150 #: ../../docs/about/list_of_features.rst:340 msgid "CPU-based particles." msgstr "" #: ../../docs/about/list_of_features.rst:151 msgid "" "Optional :ref:`2D HDR rendering " "` for better glow " "capabilities." msgstr "" #: ../../docs/about/list_of_features.rst:155 msgid "2D tools" msgstr "" #: ../../docs/about/list_of_features.rst:157 msgid ":ref:`TileMaps ` for 2D tile-based level design." msgstr "" #: ../../docs/about/list_of_features.rst:158 msgid "2D camera with built-in smoothing and drag margins." msgstr "" #: ../../docs/about/list_of_features.rst:159 msgid "Path2D node to represent a path in 2D space." msgstr "" #: ../../docs/about/list_of_features.rst:161 #: ../../docs/about/list_of_features.rst:401 msgid "Can be drawn in the editor or generated procedurally." msgstr "" #: ../../docs/about/list_of_features.rst:162 msgid "PathFollow2D node to make nodes follow a Path2D." msgstr "" #: ../../docs/about/list_of_features.rst:164 msgid ":ref:`2D geometry helper class `." msgstr "" #: ../../docs/about/list_of_features.rst:167 msgid "2D physics" msgstr "" #: ../../docs/about/list_of_features.rst:169 #: ../../docs/about/list_of_features.rst:411 msgid "**Physics bodies:**" msgstr "" #: ../../docs/about/list_of_features.rst:171 #: ../../docs/about/list_of_features.rst:413 msgid "Static bodies." msgstr "" #: ../../docs/about/list_of_features.rst:172 #: ../../docs/about/list_of_features.rst:414 msgid "" "Animatable bodies (for objects moving only by script or animation, such as " "doors and platforms)." msgstr "" #: ../../docs/about/list_of_features.rst:173 #: ../../docs/about/list_of_features.rst:415 msgid "Rigid bodies." msgstr "" #: ../../docs/about/list_of_features.rst:174 #: ../../docs/about/list_of_features.rst:416 #, fuzzy msgid "Character bodies." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:175 #: ../../docs/about/list_of_features.rst:418 msgid "Joints." msgstr "" #: ../../docs/about/list_of_features.rst:176 #: ../../docs/about/list_of_features.rst:421 msgid "Areas to detect bodies entering or leaving it." msgstr "" #: ../../docs/about/list_of_features.rst:178 #: ../../docs/about/list_of_features.rst:423 msgid "**Collision detection:**" msgstr "" #: ../../docs/about/list_of_features.rst:180 msgid "" "Built-in shapes: line, box, circle, capsule, world boundary (infinite plane)." msgstr "" #: ../../docs/about/list_of_features.rst:181 msgid "" "Collision polygons (can be drawn manually or generated from a sprite in the " "editor)." msgstr "" #: ../../docs/about/list_of_features.rst:184 msgid "3D graphics" msgstr "" #: ../../docs/about/list_of_features.rst:186 msgid "HDR rendering with sRGB." msgstr "" #: ../../docs/about/list_of_features.rst:187 msgid "Perspective, orthographic and frustum-offset cameras." msgstr "" #: ../../docs/about/list_of_features.rst:188 msgid "" "When using the Forward+ backend, a depth prepass is used to improve " "performance in complex scenes by reducing the cost of overdraw." msgstr "" #: ../../docs/about/list_of_features.rst:190 msgid "" ":ref:`doc_variable_rate_shading` on supported GPUs in Forward+ and Forward " "Mobile." msgstr "" #: ../../docs/about/list_of_features.rst:192 msgid "**Physically-based rendering (built-in material features):**" msgstr "" #: ../../docs/about/list_of_features.rst:194 msgid "Follows the Disney PBR model." msgstr "" #: ../../docs/about/list_of_features.rst:195 msgid "" "Supports Burley, Lambert, Lambert Wrap (half-Lambert) and Toon diffuse " "shading modes." msgstr "" #: ../../docs/about/list_of_features.rst:196 msgid "Supports Schlick-GGX, Toon and Disabled specular shading modes." msgstr "" #: ../../docs/about/list_of_features.rst:197 msgid "Uses a roughness-metallic workflow with support for ORM textures." msgstr "" #: ../../docs/about/list_of_features.rst:198 msgid "" "Uses horizon specular occlusion (Filament model) to improve material " "appearance." msgstr "" #: ../../docs/about/list_of_features.rst:199 msgid "Normal mapping." msgstr "" #: ../../docs/about/list_of_features.rst:200 msgid "" "Parallax/relief mapping with automatic level of detail based on distance." msgstr "" #: ../../docs/about/list_of_features.rst:201 msgid "Detail mapping for the albedo and normal maps." msgstr "" #: ../../docs/about/list_of_features.rst:202 msgid "Sub-surface scattering and transmittance." msgstr "" #: ../../docs/about/list_of_features.rst:203 msgid "" "Screen-space refraction with support for material roughness (resulting in " "blurry refraction)." msgstr "" #: ../../docs/about/list_of_features.rst:204 msgid "Proximity fade (soft particles) and distance fade." msgstr "" #: ../../docs/about/list_of_features.rst:205 msgid "" "Distance fade can use alpha blending or dithering to avoid going through the " "transparent pipeline." msgstr "" #: ../../docs/about/list_of_features.rst:207 msgid "Dithering can be determined on a per-pixel or per-object basis." msgstr "" #: ../../docs/about/list_of_features.rst:209 msgid "**Real-time lighting:**" msgstr "" #: ../../docs/about/list_of_features.rst:211 msgid "Directional lights (sun/moon). Up to 4 per scene." msgstr "" #: ../../docs/about/list_of_features.rst:212 msgid "Omnidirectional lights." msgstr "" #: ../../docs/about/list_of_features.rst:213 msgid "Spot lights with adjustable cone angle and attenuation." msgstr "" #: ../../docs/about/list_of_features.rst:214 msgid "" "Specular, indirect light, and volumetric fog energy can be adjusted on a per-" "light basis." msgstr "" #: ../../docs/about/list_of_features.rst:215 msgid "" "Adjustable light \"size\" for fake area lights (will also make shadows " "blurrier)." msgstr "" #: ../../docs/about/list_of_features.rst:216 msgid "" "Optional distance fade system to fade distant lights and their shadows, " "improving performance." msgstr "" #: ../../docs/about/list_of_features.rst:217 msgid "" "When using the Forward+ backend (default on desktop), lights are rendered " "with clustered forward optimizations to decrease their individual cost. " "Clustered rendering also lifts any limits on the number of lights that can " "be used on a mesh." msgstr "" #: ../../docs/about/list_of_features.rst:220 msgid "" "When using the Forward Mobile backend, up to 8 omni lights and 8 spot lights " "can be displayed per mesh resource. Baked lighting can be used to overcome " "this limit if needed." msgstr "" #: ../../docs/about/list_of_features.rst:224 msgid "**Shadow mapping:**" msgstr "" #: ../../docs/about/list_of_features.rst:226 msgid "" "*DirectionalLight:* Orthogonal (fastest), PSSM 2-split and 4-split. Supports " "blending between splits." msgstr "" #: ../../docs/about/list_of_features.rst:228 msgid "" "*OmniLight:* Dual paraboloid (fast) or cubemap (slower but more accurate). " "Supports colored projector textures in the form of panoramas." msgstr "" #: ../../docs/about/list_of_features.rst:230 msgid "*SpotLight:* Single texture. Supports colored projector textures." msgstr "" #: ../../docs/about/list_of_features.rst:231 msgid "" "Shadow normal offset bias and shadow pancaking to decrease the amount of " "visible shadow acne and peter-panning." msgstr "" #: ../../docs/about/list_of_features.rst:233 msgid "" ":abbr:`PCSS (Percentage Closer Soft Shadows)`-like shadow blur based on the " "light size and distance from the surface the shadow is cast on." msgstr "" #: ../../docs/about/list_of_features.rst:235 msgid "Adjustable shadow blur on a per-light basis." msgstr "" #: ../../docs/about/list_of_features.rst:237 msgid "**Global illumination with indirect lighting:**" msgstr "" #: ../../docs/about/list_of_features.rst:239 msgid "" ":ref:`Baked lightmaps ` (fast, but can't be updated " "at run-time)." msgstr "" #: ../../docs/about/list_of_features.rst:241 msgid "" "Supports baking indirect light only or baking both direct and indirect " "lighting. The bake mode can be adjusted on a per-light basis to allow for " "hybrid light baking setups." msgstr "" #: ../../docs/about/list_of_features.rst:244 msgid "" "Supports lighting dynamic objects using automatic and manually placed probes." msgstr "" #: ../../docs/about/list_of_features.rst:245 msgid "" "Optionally supports directional lighting and rough reflections based on " "spherical harmonics." msgstr "" #: ../../docs/about/list_of_features.rst:247 msgid "" "Lightmaps are baked on the GPU using compute shaders (much faster compared " "to CPU lightmapping). Baking can only be performed from the editor, not in " "exported projects." msgstr "" #: ../../docs/about/list_of_features.rst:250 msgid "" "Supports GPU-based :ref:`denoising ` with " "JNLM, or CPU/GPU-based denoising with OIDN." msgstr "" #: ../../docs/about/list_of_features.rst:253 msgid "" ":ref:`Voxel-based GI probes `. Supports dynamic lights " "*and* dynamic occluders, while also supporting reflections. Requires a fast " "baking step which can be performed in the editor or at run-time (including " "from an exported project)." msgstr "" #: ../../docs/about/list_of_features.rst:257 msgid "" ":ref:`Signed-distance field GI ` designed for large open " "worlds. Supports dynamic lights, but not dynamic occluders. Supports " "reflections. No baking required." msgstr "" #: ../../docs/about/list_of_features.rst:260 msgid "" ":ref:`Screen-space indirect lighting (SSIL) " "` at half or full resolution. " "Fully real-time and supports any kind of emissive light source (including " "decals)." msgstr "" #: ../../docs/about/list_of_features.rst:263 msgid "" "VoxelGI and SDFGI use a deferred pass to allow for rendering GI at half " "resolution to improve performance (while still having functional MSAA " "support)." msgstr "" #: ../../docs/about/list_of_features.rst:266 msgid "**Reflections:**" msgstr "" #: ../../docs/about/list_of_features.rst:268 msgid "" "Voxel-based reflections (when using GI probes) and SDF-based reflections " "(when using signed distance field GI). Voxel-based reflections are visible " "on transparent surfaces, while rough SDF-based reflections are visible on " "transparent surfaces." msgstr "" #: ../../docs/about/list_of_features.rst:272 msgid "" "Fast baked reflections or slow real-time reflections using ReflectionProbe. " "Parallax box correction can optionally be enabled." msgstr "" #: ../../docs/about/list_of_features.rst:274 msgid "Screen-space reflections with support for material roughness." msgstr "" #: ../../docs/about/list_of_features.rst:275 msgid "" "Reflection techniques can be mixed together for greater accuracy or " "scalability." msgstr "" #: ../../docs/about/list_of_features.rst:276 msgid "" "When using the Forward+ backend (default on desktop), reflection probes are " "rendered with clustered forward optimizations to decrease their individual " "cost. Clustered rendering also lifts any limits on the number of reflection " "probes that can be used on a mesh." msgstr "" #: ../../docs/about/list_of_features.rst:279 msgid "" "When using the Forward Mobile backend, up to 8 reflection probes can be " "displayed per mesh resource." msgstr "" #: ../../docs/about/list_of_features.rst:282 msgid "**Decals:**" msgstr "" #: ../../docs/about/list_of_features.rst:284 msgid "" ":ref:`Supports albedo `, emissive, :abbr:`ORM (Occlusion " "Roughness Metallic)`, and normal mapping." msgstr "" #: ../../docs/about/list_of_features.rst:286 msgid "" "Texture channels are smoothly overlaid on top of the underlying material, " "with support for normal/ORM-only decals." msgstr "" #: ../../docs/about/list_of_features.rst:288 msgid "" "Support for normal fade to fade the decal depending on its incidence angle." msgstr "" #: ../../docs/about/list_of_features.rst:289 msgid "" "Does not rely on run-time mesh generation. This means decals can be used on " "complex skinned meshes with no performance penalty, even if the decal moves " "every frame." msgstr "" #: ../../docs/about/list_of_features.rst:291 msgid "" "Support for nearest, bilinear, trilinear or anisotropic texture filtering " "(configured globally)." msgstr "" #: ../../docs/about/list_of_features.rst:292 msgid "" "Optional distance fade system to fade distant decals, improving performance." msgstr "" #: ../../docs/about/list_of_features.rst:293 msgid "" "When using the Forward+ backend (default on desktop), decals are rendered " "with clustered forward optimizations to decrease their individual cost. " "Clustered rendering also lifts any limits on the number of decals that can " "be used on a mesh." msgstr "" #: ../../docs/about/list_of_features.rst:296 msgid "" "When using the Forward Mobile backend, up to 8 decals can be displayed per " "mesh resource." msgstr "" #: ../../docs/about/list_of_features.rst:299 msgid "**Sky:**" msgstr "" #: ../../docs/about/list_of_features.rst:301 msgid "Panorama sky (using an HDRI)." msgstr "" #: ../../docs/about/list_of_features.rst:302 msgid "" "Procedural sky and Physically-based sky that respond to the " "DirectionalLights in the scene." msgstr "" #: ../../docs/about/list_of_features.rst:303 msgid "" "Support for :ref:`custom sky shaders `, which can be " "animated." msgstr "" #: ../../docs/about/list_of_features.rst:304 msgid "" "The radiance map used for ambient and specular light can be updated in real-" "time depending on the quality settings chosen." msgstr "" #: ../../docs/about/list_of_features.rst:307 msgid "**Fog:**" msgstr "" #: ../../docs/about/list_of_features.rst:309 msgid "Exponential depth fog." msgstr "" #: ../../docs/about/list_of_features.rst:310 msgid "Exponential height fog." msgstr "" #: ../../docs/about/list_of_features.rst:311 msgid "" "Support for automatic fog color depending on the sky color (aerial " "perspective)." msgstr "" #: ../../docs/about/list_of_features.rst:312 #, fuzzy msgid "Support for sun scattering in the fog." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:313 msgid "" "Support for controlling how much fog rendering should affect the sky, with " "separate controls for traditional and volumetric fog." msgstr "" #: ../../docs/about/list_of_features.rst:315 #, fuzzy msgid "Support for making specific materials ignore fog." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:317 msgid "**Volumetric fog:**" msgstr "" #: ../../docs/about/list_of_features.rst:319 msgid "" "Global :ref:`volumetric fog ` that reacts to lights and " "shadows." msgstr "" #: ../../docs/about/list_of_features.rst:320 msgid "" "Volumetric fog can take indirect light into account when using VoxelGI or " "SDFGI." msgstr "" #: ../../docs/about/list_of_features.rst:321 msgid "" "Fog volume nodes that can be placed to add fog to specific areas (or remove " "fog from specific areas). Supported shapes include box, ellipse, cone, " "cylinder, and 3D texture-based density maps." msgstr "" #: ../../docs/about/list_of_features.rst:323 msgid "Each fog volume can have its own custom shader." msgstr "" #: ../../docs/about/list_of_features.rst:324 msgid "Can be used together with traditional fog." msgstr "" #: ../../docs/about/list_of_features.rst:326 msgid "**Particles:**" msgstr "" #: ../../docs/about/list_of_features.rst:328 msgid "" "GPU-based particles with support for subemitters (2D + 3D), trails (2D + " "3D), attractors (3D only) and collision (2D + 3D)." msgstr "" #: ../../docs/about/list_of_features.rst:331 msgid "" "3D particle attractor shapes supported: box, sphere and 3D vector fields." msgstr "" #: ../../docs/about/list_of_features.rst:332 msgid "" "3D particle collision shapes supported: box, sphere, baked signed distance " "field and real-time heightmap (suited for open world weather effects)." msgstr "" #: ../../docs/about/list_of_features.rst:334 msgid "" "2D particle collision is handled using a signed distance field generated in " "real-time based on :ref:`class_LightOccluder2D` nodes in the scene." msgstr "" #: ../../docs/about/list_of_features.rst:336 msgid "" "Trails can use the built-in ribbon trail and tube trail meshes, or custom " "meshes with skeletons." msgstr "" #: ../../docs/about/list_of_features.rst:338 msgid "Support for custom particle shaders with manual emission." msgstr "" #: ../../docs/about/list_of_features.rst:342 msgid "**Post-processing:**" msgstr "" #: ../../docs/about/list_of_features.rst:344 msgid "Tonemapping (Linear, Reinhard, Filmic, ACES)." msgstr "" #: ../../docs/about/list_of_features.rst:345 msgid "" "Automatic exposure adjustments based on viewport brightness (and manual " "exposure override)." msgstr "" #: ../../docs/about/list_of_features.rst:346 msgid "" "Near and far depth of field with adjustable bokeh simulation (box, hexagon, " "circle)." msgstr "" #: ../../docs/about/list_of_features.rst:347 msgid "Screen-space ambient occlusion (SSAO) at half or full resolution." msgstr "" #: ../../docs/about/list_of_features.rst:348 msgid "" "Glow/bloom with optional bicubic upscaling and several blend modes " "available: Screen, Soft Light, Add, Replace, Mix." msgstr "" #: ../../docs/about/list_of_features.rst:350 msgid "Glow can have a colored dirt map texture, acting as a lens dirt effect." msgstr "" #: ../../docs/about/list_of_features.rst:351 msgid "" "Glow can be :ref:`used as a screen-space blur effect " "`." msgstr "" #: ../../docs/about/list_of_features.rst:352 msgid "Color correction using a one-dimensional ramp or a 3D LUT texture." msgstr "" #: ../../docs/about/list_of_features.rst:353 msgid "Roughness limiter to reduce the impact of specular aliasing." msgstr "" #: ../../docs/about/list_of_features.rst:354 msgid "Brightness, contrast and saturation adjustments." msgstr "" #: ../../docs/about/list_of_features.rst:356 msgid "**Texture filtering:**" msgstr "" #: ../../docs/about/list_of_features.rst:358 msgid "Nearest, bilinear, trilinear or anisotropic filtering." msgstr "" #: ../../docs/about/list_of_features.rst:359 msgid "" "Filtering options are defined on a per-use basis, not a per-texture basis." msgstr "" #: ../../docs/about/list_of_features.rst:361 msgid "**Texture compression:**" msgstr "" #: ../../docs/about/list_of_features.rst:363 msgid "Basis Universal (slow, but results in smaller files)." msgstr "" #: ../../docs/about/list_of_features.rst:364 msgid "BPTC for high-quality compression (not supported on macOS)." msgstr "" #: ../../docs/about/list_of_features.rst:365 msgid "ETC2 (not supported on macOS)." msgstr "" #: ../../docs/about/list_of_features.rst:366 msgid "S3TC (not supported on mobile/Web platforms)." msgstr "" #: ../../docs/about/list_of_features.rst:368 msgid "**Anti-aliasing:**" msgstr "" #: ../../docs/about/list_of_features.rst:370 msgid "Temporal :ref:`antialiasing ` (TAA)." msgstr "" #: ../../docs/about/list_of_features.rst:371 msgid "" "AMD FidelityFX Super Resolution 2.2 :ref:`antialiasing " "` (FSR2), which can be used at native resolution as a " "form of high-quality temporal antialiasing." msgstr "" #: ../../docs/about/list_of_features.rst:373 msgid "" "Multi-sample antialiasing (MSAA), for both :ref:`doc_2d_antialiasing` and :" "ref:`doc_3d_antialiasing`." msgstr "" #: ../../docs/about/list_of_features.rst:374 msgid "Fast approximate antialiasing (FXAA)." msgstr "" #: ../../docs/about/list_of_features.rst:375 msgid "" "Super-sample antialiasing (SSAA) using bilinear 3D scaling and a 3D " "resolution scale above 1.0." msgstr "" #: ../../docs/about/list_of_features.rst:376 msgid "" "Alpha antialiasing, MSAA alpha to coverage and alpha hashing on a per-" "material basis." msgstr "" #: ../../docs/about/list_of_features.rst:378 msgid "**Resolution scaling:**" msgstr "" #: ../../docs/about/list_of_features.rst:380 msgid "" "Support for :ref:`rendering 3D at a lower resolution " "` while keeping 2D rendering at the original scale. " "This can be used to improve performance on low-end systems or improve " "visuals on high-end systems." msgstr "" #: ../../docs/about/list_of_features.rst:383 msgid "" "Resolution scaling uses bilinear filtering, AMD FidelityFX Super Resolution " "1.0 (FSR1) or AMD FidelityFX Super Resolution 2.2 (FSR2)." msgstr "" #: ../../docs/about/list_of_features.rst:385 msgid "" "Texture mipmap LOD bias is adjusted automatically to improve quality at " "lower resolution scales. It can also be modified with a manual offset." msgstr "" #: ../../docs/about/list_of_features.rst:388 msgid "" "Most effects listed above can be adjusted for better performance or to " "further improve quality. This can be helpful when :ref:`using Godot for " "offline rendering `." msgstr "" #: ../../docs/about/list_of_features.rst:393 msgid "3D tools" msgstr "" #: ../../docs/about/list_of_features.rst:395 msgid "" "Built-in meshes: cube, cylinder/cone, (hemi)sphere, prism, plane, quad, " "torus, ribbon, tube." msgstr "" #: ../../docs/about/list_of_features.rst:396 msgid ":ref:`GridMaps ` for 3D tile-based level design." msgstr "" #: ../../docs/about/list_of_features.rst:397 msgid "" ":ref:`Constructive solid geometry ` (intended for " "prototyping)." msgstr "" #: ../../docs/about/list_of_features.rst:398 msgid "" "Tools for :ref:`procedural geometry generation `." msgstr "" #: ../../docs/about/list_of_features.rst:399 msgid "Path3D node to represent a path in 3D space." msgstr "" #: ../../docs/about/list_of_features.rst:402 msgid "PathFollow3D node to make nodes follow a Path3D." msgstr "" #: ../../docs/about/list_of_features.rst:404 msgid ":ref:`3D geometry helper class `." msgstr "" #: ../../docs/about/list_of_features.rst:405 msgid "" "Support for exporting the current scene as a glTF 2.0 file, both from the " "editor and at run-time from an exported project." msgstr "" #: ../../docs/about/list_of_features.rst:409 msgid "3D physics" msgstr "" #: ../../docs/about/list_of_features.rst:417 msgid "Vehicle bodies (intended for arcade physics, not simulation)." msgstr "" #: ../../docs/about/list_of_features.rst:419 msgid "Soft bodies." msgstr "" #: ../../docs/about/list_of_features.rst:420 msgid "Ragdolls." msgstr "" #: ../../docs/about/list_of_features.rst:425 msgid "" "Built-in shapes: cuboid, sphere, capsule, cylinder, world boundary (infinite " "plane)." msgstr "" #: ../../docs/about/list_of_features.rst:426 msgid "Generate triangle collision shapes for any mesh from the editor." msgstr "" #: ../../docs/about/list_of_features.rst:427 msgid "" "Generate one or several convex collision shapes for any mesh from the editor." msgstr "" #: ../../docs/about/list_of_features.rst:430 #: ../../docs/about/docs_changelog.rst:118 #: ../../docs/about/docs_changelog.rst:242 #: ../../docs/tutorials/shaders/index.rst:2 msgid "Shaders" msgstr "" #: ../../docs/about/list_of_features.rst:432 msgid "*2D:* Custom vertex, fragment, and light shaders." msgstr "" #: ../../docs/about/list_of_features.rst:433 msgid "*3D:* Custom vertex, fragment, light, and sky shaders." msgstr "" #: ../../docs/about/list_of_features.rst:434 msgid "" "Text-based shaders using a :ref:`shader language inspired by GLSL " "`." msgstr "" #: ../../docs/about/list_of_features.rst:435 #, fuzzy msgid "Visual shader editor." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:437 #, fuzzy msgid "Support for visual shader plugins." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:440 #: ../../docs/about/docs_changelog.rst:110 #: ../../docs/about/docs_changelog.rst:247 #: ../../docs/about/docs_changelog.rst:353 #: ../../docs/tutorials/scripting/index.rst:2 msgid "Scripting" msgstr "" #: ../../docs/about/list_of_features.rst:442 #, fuzzy msgid "**General:**" msgstr "Opšti deo" #: ../../docs/about/list_of_features.rst:444 msgid "Object-oriented design pattern with scripts extending nodes." msgstr "" #: ../../docs/about/list_of_features.rst:445 msgid "Signals and groups for communicating between scripts." msgstr "" #: ../../docs/about/list_of_features.rst:446 msgid "" "Support for :ref:`cross-language scripting `." msgstr "" #: ../../docs/about/list_of_features.rst:447 msgid "" "Many 2D, 3D and 4D linear algebra data types such as vectors and transforms." msgstr "" #: ../../docs/about/list_of_features.rst:449 msgid ":ref:`GDScript: `" msgstr "" #: ../../docs/about/list_of_features.rst:451 msgid "" ":ref:`High-level interpreted language ` with :ref:`optional " "static typing `." msgstr "" #: ../../docs/about/list_of_features.rst:453 msgid "" "Syntax inspired by Python. However, GDScript is **not** based on Python." msgstr "" #: ../../docs/about/list_of_features.rst:454 msgid "Syntax highlighting is provided on GitHub." msgstr "" #: ../../docs/about/list_of_features.rst:455 msgid "" ":ref:`Use threads ` to perform asynchronous " "actions or make use of multiple processor cores." msgstr "" #: ../../docs/about/list_of_features.rst:458 msgid ":ref:`C#: `" msgstr "" #: ../../docs/about/list_of_features.rst:460 msgid "Packaged in a separate binary to keep file sizes and dependencies down." msgstr "" #: ../../docs/about/list_of_features.rst:461 msgid "Supports .NET 6 and higher." msgstr "" #: ../../docs/about/list_of_features.rst:463 msgid "Full support for the C# 10.0 syntax and features." msgstr "" #: ../../docs/about/list_of_features.rst:465 msgid "" "Supports Windows, Linux, and macOS. As of 4.2 experimental support for " "Android and iOS is also available (requires a .NET 7.0 project for Android " "and 8.0 for iOS)." msgstr "" #: ../../docs/about/list_of_features.rst:468 msgid "" "On the Android platform only some architectures are supported: ``arm64`` and " "``x64``." msgstr "" #: ../../docs/about/list_of_features.rst:469 msgid "On the iOS platform only some architectures are supported: ``arm64``." msgstr "" #: ../../docs/about/list_of_features.rst:470 msgid "" "The web platform is currently unsupported. To use C# on that platform, " "consider Godot 3 instead." msgstr "" #: ../../docs/about/list_of_features.rst:473 msgid "" "Using an external editor is recommended to benefit from IDE functionality." msgstr "" #: ../../docs/about/list_of_features.rst:475 msgid "**GDExtension (C, C++, Rust, D, ...):**" msgstr "" #: ../../docs/about/list_of_features.rst:477 msgid "" "When you need it, link to native libraries for higher performance and third-" "party integrations." msgstr "" #: ../../docs/about/list_of_features.rst:479 msgid "" "For scripting game logic, GDScript or C# are recommended if their " "performance is suitable." msgstr "" #: ../../docs/about/list_of_features.rst:482 msgid "" "Official GDExtension bindings for `C `__ and `C++ `__." msgstr "" #: ../../docs/about/list_of_features.rst:485 msgid "Use any build system and language features you wish." msgstr "" #: ../../docs/about/list_of_features.rst:487 msgid "" "Actively developed GDExtension bindings for `D `__, `Haxe `__, `Swift " "`__, and `Rust `__ bindings provided by the community. (Some of " "these bindings may be experimental and not production-ready)." msgstr "" #: ../../docs/about/list_of_features.rst:492 #: ../../docs/about/docs_changelog.rst:274 #: ../../docs/tutorials/audio/index.rst:4 #: ../../docs/tutorials/export/exporting_for_web.rst:134 msgid "Audio" msgstr "" #: ../../docs/about/list_of_features.rst:496 msgid "Mono, stereo, 5.1 and 7.1 output." msgstr "" #: ../../docs/about/list_of_features.rst:497 msgid "Non-positional and positional playback in 2D and 3D." msgstr "" #: ../../docs/about/list_of_features.rst:499 msgid "Optional Doppler effect in 2D and 3D." msgstr "" #: ../../docs/about/list_of_features.rst:501 msgid "" "Support for re-routable :ref:`audio buses ` and effects " "with dozens of effects included." msgstr "" #: ../../docs/about/list_of_features.rst:503 msgid "" "Support for polyphony (playing several sounds from a single " "AudioStreamPlayer node)." msgstr "" #: ../../docs/about/list_of_features.rst:504 #, fuzzy msgid "Support for random volume and pitch." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:505 #, fuzzy msgid "Support for real-time pitch scaling." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:506 msgid "" "Support for sequential/random sample selection, including repetition " "prevention when using random sample selection." msgstr "" #: ../../docs/about/list_of_features.rst:508 msgid "" "Listener2D and Listener3D nodes to listen from a position different than the " "camera." msgstr "" #: ../../docs/about/list_of_features.rst:509 msgid "" "Support for :ref:`procedural audio generation `." msgstr "" #: ../../docs/about/list_of_features.rst:510 msgid "Audio input to record microphones." msgstr "" #: ../../docs/about/list_of_features.rst:511 msgid "MIDI input." msgstr "" #: ../../docs/about/list_of_features.rst:513 msgid "No support for MIDI output yet." msgstr "" #: ../../docs/about/list_of_features.rst:515 msgid "**APIs used:**" msgstr "" #: ../../docs/about/list_of_features.rst:517 msgid "*Windows:* WASAPI." msgstr "" #: ../../docs/about/list_of_features.rst:518 msgid "*macOS:* CoreAudio." msgstr "" #: ../../docs/about/list_of_features.rst:519 msgid "*Linux:* PulseAudio or ALSA." msgstr "" #: ../../docs/about/list_of_features.rst:522 msgid "Import" msgstr "" #: ../../docs/about/list_of_features.rst:524 msgid "Support for :ref:`custom import plugins `." msgstr "" #: ../../docs/about/list_of_features.rst:526 msgid "**Formats:**" msgstr "" #: ../../docs/about/list_of_features.rst:528 #, fuzzy msgid "*Images:* See :ref:`doc_importing_images`." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:529 msgid "*Audio:*" msgstr "" #: ../../docs/about/list_of_features.rst:531 msgid "WAV with optional IMA-ADPCM compression." msgstr "" #: ../../docs/about/list_of_features.rst:532 msgid "Ogg Vorbis." msgstr "" #: ../../docs/about/list_of_features.rst:533 msgid "MP3." msgstr "" #: ../../docs/about/list_of_features.rst:535 msgid "*3D scenes:* See :ref:`doc_importing_3d_scenes`." msgstr "" #: ../../docs/about/list_of_features.rst:537 msgid "glTF 2.0 *(recommended)*." msgstr "" #: ../../docs/about/list_of_features.rst:538 msgid "" "``.blend`` (by calling Blender's glTF export functionality transparently)." msgstr "" #: ../../docs/about/list_of_features.rst:539 msgid "" "FBX (by calling `FBX2glTF `__ " "transparently)." msgstr "" #: ../../docs/about/list_of_features.rst:540 msgid "Collada (.dae)." msgstr "" #: ../../docs/about/list_of_features.rst:541 msgid "" "Wavefront OBJ (static scenes only, can be loaded directly as a mesh or " "imported as a 3D scene)." msgstr "" #: ../../docs/about/list_of_features.rst:543 msgid "" "Support for loading glTF 2.0 scenes at run-time, including from an exported " "project." msgstr "" #: ../../docs/about/list_of_features.rst:544 msgid "" "3D meshes use `Mikktspace `__ to generate " "tangents on import, which ensures consistency with other 3D applications " "such as Blender." msgstr "" #: ../../docs/about/list_of_features.rst:548 #: ../../docs/about/docs_changelog.rst:219 #: ../../docs/tutorials/rendering/viewports.rst:38 #: ../../docs/tutorials/ui/custom_gui_controls.rst:114 msgid "Input" msgstr "" #: ../../docs/about/list_of_features.rst:550 msgid "" ":ref:`Input mapping system ` using hardcoded input " "events or remappable input actions." msgstr "" #: ../../docs/about/list_of_features.rst:553 msgid "" "Axis values can be mapped to two different actions with a configurable " "deadzone." msgstr "" #: ../../docs/about/list_of_features.rst:554 msgid "Use the same code to support both keyboards and gamepads." msgstr "" #: ../../docs/about/list_of_features.rst:556 msgid "Keyboard input." msgstr "" #: ../../docs/about/list_of_features.rst:558 msgid "" "Keys can be mapped in \"physical\" mode to be independent of the keyboard " "layout." msgstr "" #: ../../docs/about/list_of_features.rst:560 msgid "Mouse input." msgstr "" #: ../../docs/about/list_of_features.rst:562 msgid "" "The mouse cursor can be visible, hidden, captured or confined within the " "window." msgstr "" #: ../../docs/about/list_of_features.rst:563 msgid "" "When captured, raw input will be used on Windows and Linux to sidestep the " "OS' mouse acceleration settings." msgstr "" #: ../../docs/about/list_of_features.rst:566 msgid "Gamepad input (up to 8 simultaneous controllers)." msgstr "" #: ../../docs/about/list_of_features.rst:567 msgid "Pen/tablet input with pressure support." msgstr "" #: ../../docs/about/list_of_features.rst:570 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.1.rst:136 #: ../../docs/tutorials/navigation/index.rst:2 msgid "Navigation" msgstr "" #: ../../docs/about/list_of_features.rst:572 msgid "" "A* algorithm in :ref:`2D ` and :ref:`3D `." msgstr "" #: ../../docs/about/list_of_features.rst:573 msgid "" "Navigation meshes with dynamic obstacle avoidance in :ref:`2D " "` and :ref:`3D `." msgstr "" #: ../../docs/about/list_of_features.rst:575 msgid "" "Generate navigation meshes from the editor or at run-time (including from an " "exported project)." msgstr "" #: ../../docs/about/list_of_features.rst:578 #: ../../docs/about/docs_changelog.rst:306 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.1.rst:166 #: ../../docs/tutorials/export/exporting_for_web.rst:149 #: ../../docs/tutorials/networking/index.rst:4 msgid "Networking" msgstr "" #: ../../docs/about/list_of_features.rst:580 msgid "" "Low-level TCP networking using :ref:`class_StreamPeer` and :ref:" "`class_TCPServer`." msgstr "" #: ../../docs/about/list_of_features.rst:581 msgid "" "Low-level UDP networking using :ref:`class_PacketPeer` and :ref:" "`class_UDPServer`." msgstr "" #: ../../docs/about/list_of_features.rst:582 msgid "Low-level HTTP requests using :ref:`class_HTTPClient`." msgstr "" #: ../../docs/about/list_of_features.rst:583 msgid "High-level HTTP requests using :ref:`class_HTTPRequest`." msgstr "" #: ../../docs/about/list_of_features.rst:585 msgid "Supports HTTPS out of the box using bundled certificates." msgstr "" #: ../../docs/about/list_of_features.rst:587 msgid "" ":ref:`High-level multiplayer ` API using UDP and " "ENet." msgstr "" #: ../../docs/about/list_of_features.rst:589 msgid "Automatic replication using remote procedure calls (RPCs)." msgstr "" #: ../../docs/about/list_of_features.rst:590 msgid "Supports unreliable, reliable and ordered transfers." msgstr "" #: ../../docs/about/list_of_features.rst:592 msgid "" ":ref:`WebSocket ` client and server, available on all " "platforms." msgstr "" #: ../../docs/about/list_of_features.rst:593 msgid "" ":ref:`WebRTC ` client and server, available on all platforms." msgstr "" #: ../../docs/about/list_of_features.rst:594 msgid "" "Support for :ref:`UPnP ` to sidestep the requirement to forward " "ports when hosting a server behind a NAT." msgstr "" #: ../../docs/about/list_of_features.rst:598 #: ../../docs/about/docs_changelog.rst:291 #: ../../docs/tutorials/i18n/index.rst:2 msgid "Internationalization" msgstr "" #: ../../docs/about/list_of_features.rst:600 msgid "Full support for Unicode including emoji." msgstr "" #: ../../docs/about/list_of_features.rst:601 msgid "" "Store localization strings using :ref:`CSV ` " "or :ref:`gettext `." msgstr "" #: ../../docs/about/list_of_features.rst:604 msgid "Support for generating gettext POT and PO files from the editor." msgstr "" #: ../../docs/about/list_of_features.rst:606 msgid "" "Use localized strings in your project automatically in GUI elements or by " "using the ``tr()`` function." msgstr "" #: ../../docs/about/list_of_features.rst:608 msgid "" "Support for pluralization and translation contexts when using gettext " "translations." msgstr "" #: ../../docs/about/list_of_features.rst:609 msgid "" "Support for :ref:`bidirectional typesetting " "`, text shaping and OpenType localized " "forms." msgstr "" #: ../../docs/about/list_of_features.rst:611 msgid "Automatic UI mirroring for right-to-left locales." msgstr "" #: ../../docs/about/list_of_features.rst:612 msgid "" "Support for pseudolocalization to test your project for i18n-friendliness." msgstr "" #: ../../docs/about/list_of_features.rst:615 msgid "Windowing and OS integration" msgstr "" #: ../../docs/about/list_of_features.rst:617 msgid "Spawn multiple independent windows within a single process." msgstr "" #: ../../docs/about/list_of_features.rst:618 msgid "Move, resize, minimize, and maximize windows spawned by the project." msgstr "" #: ../../docs/about/list_of_features.rst:619 msgid "Change the window title and icon." msgstr "" #: ../../docs/about/list_of_features.rst:620 msgid "" "Request attention (will cause the title bar to blink on most platforms)." msgstr "" #: ../../docs/about/list_of_features.rst:621 msgid "Fullscreen mode." msgstr "" #: ../../docs/about/list_of_features.rst:623 msgid "" "Uses borderless fullscreen by default on Windows for fast alt-tabbing, but " "can optionally use exclusive fullscreen to reduce input lag." msgstr "" #: ../../docs/about/list_of_features.rst:626 msgid "Borderless windows (fullscreen or non-fullscreen)." msgstr "" #: ../../docs/about/list_of_features.rst:627 msgid "Ability to keep a window always on top." msgstr "" #: ../../docs/about/list_of_features.rst:628 msgid "Global menu integration on macOS." msgstr "" #: ../../docs/about/list_of_features.rst:629 msgid "" "Execute commands in a blocking or non-blocking manner (including running " "multiple instances of the same project)." msgstr "" #: ../../docs/about/list_of_features.rst:631 msgid "" "Open file paths and URLs using default or custom protocol handlers (if " "registered on the system)." msgstr "" #: ../../docs/about/list_of_features.rst:632 msgid "Parse custom command line arguments." msgstr "" #: ../../docs/about/list_of_features.rst:633 msgid "" "Any Godot binary (editor or exported project) can be :ref:`used as a " "headless server ` by starting it with " "the ``--headless`` command line argument. This allows running the engine " "without a GPU or display server." msgstr "" #: ../../docs/about/list_of_features.rst:639 msgid "Mobile" msgstr "" #: ../../docs/about/list_of_features.rst:641 msgid "" "In-app purchases on :ref:`Android ` and :ref:" "`iOS `." msgstr "" #: ../../docs/about/list_of_features.rst:643 msgid "Support for advertisements using third-party modules." msgstr "" #: ../../docs/about/list_of_features.rst:646 msgid "XR support (AR and VR)" msgstr "" #: ../../docs/about/list_of_features.rst:648 msgid "Out of the box :ref:`support for OpenXR `." msgstr "" #: ../../docs/about/list_of_features.rst:650 msgid "" "Including support for popular desktop headsets like the Valve Index, WMR " "headsets, and Quest over Link." msgstr "" #: ../../docs/about/list_of_features.rst:652 msgid "" "Support for :ref:`Android based headsets ` using " "OpenXR through a plugin." msgstr "" #: ../../docs/about/list_of_features.rst:654 msgid "" "Including support for popular stand alone headsets like the Meta Quest 1/2/3 " "and Pro, Pico 4, Magic Leap 2, and Lynx R1." msgstr "" #: ../../docs/about/list_of_features.rst:656 msgid "Other devices supported through an XR plugin structure." msgstr "" #: ../../docs/about/list_of_features.rst:657 msgid "" "Various advanced toolkits are available that implement common features " "required by XR applications." msgstr "" #: ../../docs/about/list_of_features.rst:660 msgid "GUI system" msgstr "" #: ../../docs/about/list_of_features.rst:662 msgid "" "Godot's GUI is built using the same Control nodes used to make games in " "Godot. The editor UI can easily be extended in many ways using add-ons." msgstr "" #: ../../docs/about/list_of_features.rst:665 msgid "**Nodes:**" msgstr "" #: ../../docs/about/list_of_features.rst:667 msgid "Buttons." msgstr "" #: ../../docs/about/list_of_features.rst:668 msgid "Checkboxes, check buttons, radio buttons." msgstr "" #: ../../docs/about/list_of_features.rst:669 msgid "" "Text entry using :ref:`class_LineEdit` (single line) and :ref:" "`class_TextEdit` (multiple lines). TextEdit also supports code editing " "features such as displaying line numbers and syntax highlighting." msgstr "" #: ../../docs/about/list_of_features.rst:672 msgid "" "Dropdown menus using :ref:`class_PopupMenu` and :ref:`class_OptionButton`." msgstr "" #: ../../docs/about/list_of_features.rst:673 msgid "Scrollbars." msgstr "" #: ../../docs/about/list_of_features.rst:674 msgid "Labels." msgstr "" #: ../../docs/about/list_of_features.rst:675 msgid "" "RichTextLabel for :ref:`text formatted using BBCode " "`, with support for animated custom effects." msgstr "" #: ../../docs/about/list_of_features.rst:677 msgid "Trees (can also be used to represent tables)." msgstr "" #: ../../docs/about/list_of_features.rst:678 msgid "Color picker with RGB and HSV modes." msgstr "" #: ../../docs/about/list_of_features.rst:679 msgid "Controls can be rotated and scaled." msgstr "" #: ../../docs/about/list_of_features.rst:681 msgid "**Sizing:**" msgstr "" #: ../../docs/about/list_of_features.rst:683 msgid "Anchors to keep GUI elements in a specific corner, edge or centered." msgstr "" #: ../../docs/about/list_of_features.rst:684 msgid "Containers to place GUI elements automatically following certain rules." msgstr "" #: ../../docs/about/list_of_features.rst:686 msgid ":ref:`Stack ` layouts." msgstr "" #: ../../docs/about/list_of_features.rst:687 #, fuzzy msgid ":ref:`Grid ` layouts." msgstr "Kreiranje Sadržaja" #: ../../docs/about/list_of_features.rst:688 msgid "" ":ref:`Flow ` layouts (similar to autowrapping text)." msgstr "" #: ../../docs/about/list_of_features.rst:689 msgid "" ":ref:`Margin `, :ref:`centered " "` and :ref:`aspect ratio " "` layouts." msgstr "" #: ../../docs/about/list_of_features.rst:691 msgid ":ref:`Draggable splitter ` layouts." msgstr "" #: ../../docs/about/list_of_features.rst:693 msgid "" "Scale to :ref:`multiple resolutions ` using the " "``canvas_items`` or ``viewport`` stretch modes." msgstr "" #: ../../docs/about/list_of_features.rst:695 msgid "" "Support any aspect ratio using anchors and the ``expand`` stretch aspect." msgstr "" #: ../../docs/about/list_of_features.rst:697 msgid "**Theming:**" msgstr "" #: ../../docs/about/list_of_features.rst:699 msgid "Built-in theme editor." msgstr "" #: ../../docs/about/list_of_features.rst:701 msgid "Generate a theme based on the current editor theme settings." msgstr "" #: ../../docs/about/list_of_features.rst:703 msgid "Procedural vector-based theming using :ref:`class_StyleBoxFlat`." msgstr "" #: ../../docs/about/list_of_features.rst:705 msgid "" "Supports rounded/beveled corners, drop shadows, per-border widths and " "antialiasing." msgstr "" #: ../../docs/about/list_of_features.rst:707 msgid "Texture-based theming using :ref:`class_StyleBoxTexture`." msgstr "" #: ../../docs/about/list_of_features.rst:709 msgid "" "Godot's small distribution size can make it a suitable alternative to " "frameworks like Electron or Qt." msgstr "" #: ../../docs/about/list_of_features.rst:713 #: ../../docs/about/docs_changelog.rst:85 #: ../../docs/about/docs_changelog.rst:148 #: ../../docs/about/docs_changelog.rst:393 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.1.rst:49 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.2.rst:62 #: ../../docs/tutorials/2d/particle_systems_2d.rst:374 #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:713 #: ../../docs/tutorials/3d/particles/process_material_properties.rst:318 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/tutorials/assets_pipeline/escn_exporter/animation.rst:2 #: ../../docs/contributing/development/file_formats/tscn.rst:383 msgid "Animation" msgstr "" #: ../../docs/about/list_of_features.rst:715 msgid "Direct kinematics and inverse kinematics." msgstr "" #: ../../docs/about/list_of_features.rst:716 msgid "Support for animating any property with customizable interpolation." msgstr "" #: ../../docs/about/list_of_features.rst:717 msgid "Support for calling methods in animation tracks." msgstr "" #: ../../docs/about/list_of_features.rst:718 msgid "Support for playing sounds in animation tracks." msgstr "" #: ../../docs/about/list_of_features.rst:719 msgid "Support for Bézier curves in animation." msgstr "" #: ../../docs/about/list_of_features.rst:722 msgid "File formats" msgstr "" #: ../../docs/about/list_of_features.rst:724 msgid "" "Scenes and resources can be saved in :ref:`text-based " "` or binary formats." msgstr "" #: ../../docs/about/list_of_features.rst:726 msgid "" "Text-based formats are human-readable and more friendly to version control." msgstr "" #: ../../docs/about/list_of_features.rst:727 msgid "Binary formats are faster to save/load for large scenes/resources." msgstr "" #: ../../docs/about/list_of_features.rst:729 msgid "Read and write text or binary files using :ref:`class_FileAccess`." msgstr "" #: ../../docs/about/list_of_features.rst:731 msgid "Can optionally be compressed or encrypted." msgstr "" #: ../../docs/about/list_of_features.rst:733 msgid "Read and write :ref:`class_JSON` files." msgstr "" #: ../../docs/about/list_of_features.rst:734 msgid "" "Read and write INI-style configuration files using :ref:`class_ConfigFile`." msgstr "" #: ../../docs/about/list_of_features.rst:736 msgid "Can (de)serialize any Godot datatype, including Vector2/3, Color, ..." msgstr "" #: ../../docs/about/list_of_features.rst:738 msgid "Read XML files using :ref:`class_XMLParser`." msgstr "" #: ../../docs/about/list_of_features.rst:739 msgid "" ":ref:`Load and save images, audio/video, fonts and ZIP archives " "` in an exported project without having to " "go through Godot's import system." msgstr "" #: ../../docs/about/list_of_features.rst:741 msgid "" "Pack game data into a PCK file (custom format optimized for fast seeking), " "into a ZIP archive, or directly into the executable for single-file " "distribution." msgstr "" #: ../../docs/about/list_of_features.rst:743 msgid "" ":ref:`Export additional PCK files` that can be read by " "the engine to support mods and DLCs." msgstr "" #: ../../docs/about/list_of_features.rst:747 #: ../../docs/about/docs_changelog.rst:445 msgid "Miscellaneous" msgstr "" #: ../../docs/about/list_of_features.rst:749 msgid "" ":ref:`Video playback ` with built-in support for Ogg " "Theora." msgstr "" #: ../../docs/about/list_of_features.rst:750 msgid "" ":ref:`Movie Maker mode ` to record videos from a " "running project with synchronized audio and perfect frame pacing." msgstr "" #: ../../docs/about/list_of_features.rst:752 msgid "" ":ref:`Low-level access to servers ` which allows " "bypassing the scene tree's overhead when needed." msgstr "" #: ../../docs/about/list_of_features.rst:754 msgid "" ":ref:`Command line interface ` for automation." msgstr "" #: ../../docs/about/list_of_features.rst:756 msgid "Export and deploy projects using continuous integration platforms." msgstr "" #: ../../docs/about/list_of_features.rst:757 msgid "" "`Shell completion scripts `__ are available for Bash, zsh and fish." msgstr "" #: ../../docs/about/list_of_features.rst:759 msgid "" "Print colored text to standard output on all platforms using :ref:" "`print_rich `." msgstr "" #: ../../docs/about/list_of_features.rst:762 msgid "" "Support for :ref:`C++ modules ` statically linked " "into the engine binary." msgstr "" #: ../../docs/about/list_of_features.rst:764 msgid "Engine and editor written in C++17." msgstr "" #: ../../docs/about/list_of_features.rst:766 msgid "" "Can be :ref:`compiled ` using GCC, " "Clang and MSVC. MinGW is also supported." msgstr "" #: ../../docs/about/list_of_features.rst:768 msgid "" "Friendly towards packagers. In most cases, system libraries can be used " "instead of the ones provided by Godot. The build system doesn't download " "anything. Builds can be fully reproducible." msgstr "" #: ../../docs/about/list_of_features.rst:772 msgid "Licensed under the permissive MIT license." msgstr "" #: ../../docs/about/list_of_features.rst:774 msgid "" "Open development process with :ref:`contributions welcome " "`." msgstr "" #: ../../docs/about/list_of_features.rst:778 msgid "" "The `Godot proposals repository `__ lists features that have been requested by the community and " "may be implemented in future Godot releases." msgstr "" #: ../../docs/about/system_requirements.rst:6 msgid "System requirements" msgstr "" #: ../../docs/about/system_requirements.rst:8 msgid "" "This page contains system requirements for the editor and exported projects. " "These specifications are given for informative purposes only, but they can " "be referred to if you're looking to build or upgrade a system to use Godot " "on." msgstr "" #: ../../docs/about/system_requirements.rst:13 #, fuzzy msgid "Godot editor" msgstr "Kreiranje Sadržaja" #: ../../docs/about/system_requirements.rst:15 msgid "" "These are the **minimum** specifications required to run the Godot editor " "and work on a simple 2D or 3D project:" msgstr "" #: ../../docs/about/system_requirements.rst:19 #: ../../docs/about/system_requirements.rst:204 msgid "Desktop or laptop PC - Minimum" msgstr "" #: ../../docs/about/system_requirements.rst:26 #: ../../docs/about/system_requirements.rst:78 #: ../../docs/about/system_requirements.rst:116 #: ../../docs/about/system_requirements.rst:154 #: ../../docs/about/system_requirements.rst:211 #: ../../docs/about/system_requirements.rst:261 #: ../../docs/about/system_requirements.rst:299 #: ../../docs/about/system_requirements.rst:337 msgid "**CPU**" msgstr "" #: ../../docs/about/system_requirements.rst:26 #: ../../docs/about/system_requirements.rst:211 msgid "**Windows:** x86_32 CPU with SSE2 instructions, or any x86_64 CPU" msgstr "" #: ../../docs/about/system_requirements.rst:28 #: ../../docs/about/system_requirements.rst:213 msgid "*Example: Intel Core 2 Duo E8200, AMD Athlon XE BE-2300*" msgstr "" #: ../../docs/about/system_requirements.rst:30 #: ../../docs/about/system_requirements.rst:120 #: ../../docs/about/system_requirements.rst:215 #: ../../docs/about/system_requirements.rst:303 msgid "**macOS:** x86_64 or ARM CPU (Apple Silicon)" msgstr "" #: ../../docs/about/system_requirements.rst:32 #: ../../docs/about/system_requirements.rst:217 msgid "*Example: Intel Core 2 Duo SU9400, Apple M1*" msgstr "" #: ../../docs/about/system_requirements.rst:34 #: ../../docs/about/system_requirements.rst:124 #: ../../docs/about/system_requirements.rst:219 #: ../../docs/about/system_requirements.rst:307 msgid "" "**Linux:** x86_32 CPU with SSE2 instructions, x86_64 CPU, ARMv7 or ARMv8 CPU" msgstr "" #: ../../docs/about/system_requirements.rst:36 #: ../../docs/about/system_requirements.rst:221 msgid "" "*Example: Intel Core 2 Duo E8200, AMD Athlon XE BE-2300, Raspberry Pi 4*" msgstr "" #: ../../docs/about/system_requirements.rst:38 #: ../../docs/about/system_requirements.rst:84 #: ../../docs/about/system_requirements.rst:128 #: ../../docs/about/system_requirements.rst:160 #: ../../docs/about/system_requirements.rst:223 #: ../../docs/about/system_requirements.rst:269 #: ../../docs/about/system_requirements.rst:311 #: ../../docs/about/system_requirements.rst:345 msgid "**GPU**" msgstr "" #: ../../docs/about/system_requirements.rst:38 #: ../../docs/about/system_requirements.rst:223 msgid "" "**Forward+ rendering method:** Integrated graphics with full Vulkan 1.0 " "support" msgstr "" #: ../../docs/about/system_requirements.rst:40 #: ../../docs/about/system_requirements.rst:44 #: ../../docs/about/system_requirements.rst:225 #: ../../docs/about/system_requirements.rst:229 msgid "" "*Example: Intel HD Graphics 5500 (Broadwell), AMD Radeon R5 Graphics " "(Kaveri)*" msgstr "" #: ../../docs/about/system_requirements.rst:42 #: ../../docs/about/system_requirements.rst:227 msgid "" "**Mobile rendering method:** Integrated graphics with full Vulkan 1.0 support" msgstr "" #: ../../docs/about/system_requirements.rst:46 #: ../../docs/about/system_requirements.rst:231 msgid "" "**Compatibility rendering method:** Integrated graphics with full OpenGL 3.3 " "support" msgstr "" #: ../../docs/about/system_requirements.rst:48 #: ../../docs/about/system_requirements.rst:233 msgid "" "*Example: Intel HD Graphics 2500 (Ivy Bridge), AMD Radeon R5 Graphics " "(Kaveri)*" msgstr "" #: ../../docs/about/system_requirements.rst:50 #: ../../docs/about/system_requirements.rst:96 #: ../../docs/about/system_requirements.rst:140 #: ../../docs/about/system_requirements.rst:172 #: ../../docs/about/system_requirements.rst:235 #: ../../docs/about/system_requirements.rst:281 #: ../../docs/about/system_requirements.rst:323 #: ../../docs/about/system_requirements.rst:357 msgid "**RAM**" msgstr "" #: ../../docs/about/system_requirements.rst:50 #, fuzzy msgid "**Native editor:** 4 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:51 #: ../../docs/about/system_requirements.rst:173 #, fuzzy msgid "**Web editor:** 8 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:53 #: ../../docs/about/system_requirements.rst:99 #: ../../docs/about/system_requirements.rst:143 #: ../../docs/about/system_requirements.rst:175 #: ../../docs/about/system_requirements.rst:238 #: ../../docs/about/system_requirements.rst:284 #: ../../docs/about/system_requirements.rst:326 #: ../../docs/about/system_requirements.rst:360 msgid "**Storage**" msgstr "" #: ../../docs/about/system_requirements.rst:53 #: ../../docs/about/system_requirements.rst:99 msgid "" "200 MB (used for the executable, project files and cache). Exporting " "projects requires downloading export templates separately (1.3 GB after " "installation)." msgstr "" #: ../../docs/about/system_requirements.rst:57 #: ../../docs/about/system_requirements.rst:103 #: ../../docs/about/system_requirements.rst:145 #: ../../docs/about/system_requirements.rst:177 #: ../../docs/about/system_requirements.rst:240 #: ../../docs/about/system_requirements.rst:286 #: ../../docs/about/system_requirements.rst:328 #: ../../docs/about/system_requirements.rst:362 msgid "**Operating system**" msgstr "" #: ../../docs/about/system_requirements.rst:57 msgid "" "**Native editor:** Windows 7, macOS 10.13 (Compatibility) or macOS 10.15 " "(Forward+/Mobile), Linux distribution released after 2016" msgstr "" #: ../../docs/about/system_requirements.rst:59 msgid "**Web editor:** Firefox 79, Chrome 68, Edge 79, Safari 15.2, Opera 64" msgstr "" #: ../../docs/about/system_requirements.rst:64 #: ../../docs/about/system_requirements.rst:247 msgid "" "Windows 7/8/8.1 are supported on a best-effort basis. These versions are not " "regularly tested and some features may be missing (such as colored :ref:" "`print_rich ` console output). Support " "for Windows 7/8/8.1 may be removed in a :ref:`future Godot 4.x release " "`." msgstr "" #: ../../docs/about/system_requirements.rst:70 #: ../../docs/about/system_requirements.rst:253 msgid "" "Vulkan drivers for these Windows versions are known to have issues with " "memory leaks. As a result, it's recommended to stick to the Compatibility " "rendering method when running Godot on an Windows version older than 10." msgstr "" #: ../../docs/about/system_requirements.rst:75 #: ../../docs/about/system_requirements.rst:258 msgid "Mobile device (smartphone/tablet) - Minimum" msgstr "" #: ../../docs/about/system_requirements.rst:78 #: ../../docs/about/system_requirements.rst:261 msgid "**Android:** SoC with any 32-bit or 64-bit ARM or x86 CPU" msgstr "" #: ../../docs/about/system_requirements.rst:80 #: ../../docs/about/system_requirements.rst:263 msgid "*Example: Qualcomm Snapdragon 430, Samsung Exynos 5 Octa 5430*" msgstr "" #: ../../docs/about/system_requirements.rst:82 #: ../../docs/about/system_requirements.rst:158 #, fuzzy msgid "**iOS:** *Cannot run the editor*" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:84 #: ../../docs/about/system_requirements.rst:269 msgid "" "**Forward+ rendering method:** SoC featuring GPU with full Vulkan 1.0 support" msgstr "" #: ../../docs/about/system_requirements.rst:86 #: ../../docs/about/system_requirements.rst:90 msgid "*Example: Qualcomm Adreno 505, Mali-G71 MP2*" msgstr "" #: ../../docs/about/system_requirements.rst:88 #: ../../docs/about/system_requirements.rst:273 msgid "" "**Mobile rendering method:** SoC featuring GPU with full Vulkan 1.0 support" msgstr "" #: ../../docs/about/system_requirements.rst:92 #: ../../docs/about/system_requirements.rst:277 msgid "" "**Compatibility rendering method:** SoC featuring GPU with full OpenGL ES " "3.0 support" msgstr "" #: ../../docs/about/system_requirements.rst:94 msgid "*Example: Qualcomm Adreno 306, Mali-T628 MP6*" msgstr "" #: ../../docs/about/system_requirements.rst:96 #, fuzzy msgid "**Native editor:** 3 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:97 #, fuzzy msgid "**Web editor:** 6 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:103 msgid "" "**Native editor:** Android 6.0 (Compatibility) or Android 9.0 (Forward+/" "Mobile), iOS 11.0" msgstr "" #: ../../docs/about/system_requirements.rst:105 msgid "" "**Web editor:** Firefox 79, Chrome 88, Edge 79, Safari 15.2, Opera 64, " "Samsung Internet 15" msgstr "" #: ../../docs/about/system_requirements.rst:109 msgid "" "These are the **recommended** specifications to get a smooth experience with " "the Godot editor on a simple 2D or 3D project:" msgstr "" #: ../../docs/about/system_requirements.rst:113 #: ../../docs/about/system_requirements.rst:296 msgid "Desktop or laptop PC - Recommended" msgstr "" #: ../../docs/about/system_requirements.rst:116 #: ../../docs/about/system_requirements.rst:299 msgid "" "**Windows:** x86_64 CPU with SSE4.2 instructions, with 4 physical cores or " "more" msgstr "" #: ../../docs/about/system_requirements.rst:118 #: ../../docs/about/system_requirements.rst:301 msgid "*Example: Intel Core i5-6600K, AMD Ryzen 5 1600*" msgstr "" #: ../../docs/about/system_requirements.rst:122 #: ../../docs/about/system_requirements.rst:305 msgid "*Example: Intel Core i5-8500, Apple M1*" msgstr "" #: ../../docs/about/system_requirements.rst:126 #: ../../docs/about/system_requirements.rst:309 msgid "" "*Example: Intel Core i5-6600K, AMD Ryzen 5 1600, Raspberry Pi 5 with " "overclocking*" msgstr "" #: ../../docs/about/system_requirements.rst:128 #: ../../docs/about/system_requirements.rst:311 msgid "" "**Forward+ rendering method:** Dedicated graphics with full Vulkan 1.2 " "support" msgstr "" #: ../../docs/about/system_requirements.rst:130 #: ../../docs/about/system_requirements.rst:134 #: ../../docs/about/system_requirements.rst:313 #: ../../docs/about/system_requirements.rst:317 msgid "" "*Example: NVIDIA GeForce GTX 1050 (Pascal), AMD Radeon RX 460 (GCN 4.0)*" msgstr "" #: ../../docs/about/system_requirements.rst:132 #: ../../docs/about/system_requirements.rst:315 msgid "" "**Mobile rendering method:** Dedicated graphics with full Vulkan 1.2 support" msgstr "" #: ../../docs/about/system_requirements.rst:136 #: ../../docs/about/system_requirements.rst:319 msgid "" "**Compatibility rendering method:** Dedicated graphics with full OpenGL 4.6 " "support" msgstr "" #: ../../docs/about/system_requirements.rst:138 #: ../../docs/about/system_requirements.rst:321 msgid "" "*Example: NVIDIA GeForce GTX 650 (Kepler), AMD Radeon HD 7750 (GCN 1.0)*" msgstr "" #: ../../docs/about/system_requirements.rst:140 #, fuzzy msgid "**Native editor:** 8 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:141 #, fuzzy msgid "**Web editor:** 12 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:143 #: ../../docs/about/system_requirements.rst:175 msgid "" "1.5 GB (used for the executable, project files, all export templates and " "cache)" msgstr "" #: ../../docs/about/system_requirements.rst:145 msgid "" "**Native editor:** Windows 10, macOS 10.15, Linux distribution released " "after 2020" msgstr "" #: ../../docs/about/system_requirements.rst:147 msgid "**Web editor:** Latest version of Firefox, Chrome, Edge, Safari, Opera" msgstr "" #: ../../docs/about/system_requirements.rst:151 #: ../../docs/about/system_requirements.rst:334 msgid "Mobile device (smartphone/tablet) - Recommended" msgstr "" #: ../../docs/about/system_requirements.rst:154 #: ../../docs/about/system_requirements.rst:337 msgid "" "**Android:** SoC with 64-bit ARM or x86 CPU, with 3 \"performance\" cores or " "more" msgstr "" #: ../../docs/about/system_requirements.rst:156 #: ../../docs/about/system_requirements.rst:339 msgid "*Example: Qualcomm Snapdragon 845, Samsung Exynos 9810*" msgstr "" #: ../../docs/about/system_requirements.rst:160 #: ../../docs/about/system_requirements.rst:345 msgid "" "**Forward+ rendering method:** SoC featuring GPU with full Vulkan 1.2 support" msgstr "" #: ../../docs/about/system_requirements.rst:162 #: ../../docs/about/system_requirements.rst:166 #: ../../docs/about/system_requirements.rst:170 msgid "*Example: Qualcomm Adreno 630, Mali-G72 MP18*" msgstr "" #: ../../docs/about/system_requirements.rst:164 #: ../../docs/about/system_requirements.rst:349 msgid "" "**Mobile rendering method:** SoC featuring GPU with full Vulkan 1.2 support" msgstr "" #: ../../docs/about/system_requirements.rst:168 #: ../../docs/about/system_requirements.rst:353 msgid "" "**Compatibility rendering method:** SoC featuring GPU with full OpenGL ES " "3.2 support" msgstr "" #: ../../docs/about/system_requirements.rst:172 #, fuzzy msgid "**Native editor:** 6 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:177 msgid "**Native editor:** Android 9.0 or iOS 11.0" msgstr "" #: ../../docs/about/system_requirements.rst:178 msgid "" "**Web editor:** Latest version of Firefox, Chrome, Edge, Safari, Opera, " "Samsung Internet" msgstr "" #: ../../docs/about/system_requirements.rst:183 #, fuzzy msgid "Exported Godot project" msgstr "Kreiranje Sadržaja" #: ../../docs/about/system_requirements.rst:187 msgid "" "The requirements below are a baseline for a **simple** 2D or 3D project, " "with basic scripting and few visual flourishes. CPU, GPU, RAM and storage " "requirements will heavily vary depending on your project's scope, its " "rendering method, viewport resolution and graphics settings chosen. Other " "programs running on the system while the project is running will also " "compete for resources, including RAM and video RAM." msgstr "" #: ../../docs/about/system_requirements.rst:194 msgid "" "It is strongly recommended to do your own testing on low-end hardware to " "make sure your project runs at the desired speed. To provide scalability for " "low-end hardware, you will also need to introduce a `graphics options menu " "`__ to your project." msgstr "" #: ../../docs/about/system_requirements.rst:200 msgid "" "These are the **minimum** specifications required to run a simple 2D or 3D " "project exported with Godot:" msgstr "" #: ../../docs/about/system_requirements.rst:235 #: ../../docs/about/system_requirements.rst:357 #, fuzzy msgid "**For native exports:** 2 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:236 #: ../../docs/about/system_requirements.rst:358 #, fuzzy msgid "**For web exports:** 4 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:238 #: ../../docs/about/system_requirements.rst:284 #: ../../docs/about/system_requirements.rst:326 #: ../../docs/about/system_requirements.rst:360 msgid "150 MB (used for the executable, project files and cache)" msgstr "" #: ../../docs/about/system_requirements.rst:240 msgid "" "**For native exports:** Windows 7, macOS 10.13 (Compatibility) or macOS " "10.15 (Forward+/Mobile), Linux distribution released after 2016" msgstr "" #: ../../docs/about/system_requirements.rst:242 msgid "" "**For web exports:** Firefox 79, Chrome 68, Edge 79, Safari 15.2, Opera 64" msgstr "" #: ../../docs/about/system_requirements.rst:265 msgid "**iOS:** SoC with any 64-bit ARM CPU" msgstr "" #: ../../docs/about/system_requirements.rst:267 msgid "*Example: Apple A7 (iPhone 5S)*" msgstr "" #: ../../docs/about/system_requirements.rst:271 #: ../../docs/about/system_requirements.rst:275 msgid "" "*Example: Qualcomm Adreno 505, Mali-G71 MP2, PowerVR G6430 (iPhone 6S/iPhone " "SE 1)*" msgstr "" #: ../../docs/about/system_requirements.rst:279 msgid "" "*Example: Qualcomm Adreno 306, Mali-T628 MP6, PowerVR G6430 (iPhone 5S)*" msgstr "" #: ../../docs/about/system_requirements.rst:281 #, fuzzy msgid "**For native exports:** 1 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:282 #, fuzzy msgid "**For web exports:** 2 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:286 msgid "" "**For native exports:** Android 6.0 (Compatibility) or Android 9.0 (Forward+/" "Mobile), iOS 11.0" msgstr "" #: ../../docs/about/system_requirements.rst:288 msgid "" "**For web exports:** Firefox 79, Chrome 88, Edge 79, Safari 15.2, Opera 64, " "Samsung Internet 15" msgstr "" #: ../../docs/about/system_requirements.rst:292 msgid "" "These are the **recommended** specifications to get a smooth experience with " "a simple 2D or 3D project exported with Godot:" msgstr "" #: ../../docs/about/system_requirements.rst:323 #, fuzzy msgid "**For native exports:** 4 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:324 #, fuzzy msgid "**For web exports:** 8 GB" msgstr "**Za uređivač:**" #: ../../docs/about/system_requirements.rst:328 msgid "" "**For native exports:** Windows 10, macOS 10.15, Linux distribution released " "after 2020" msgstr "" #: ../../docs/about/system_requirements.rst:330 msgid "" "**For web exports:** Latest version of Firefox, Chrome, Edge, Safari, Opera" msgstr "" #: ../../docs/about/system_requirements.rst:341 msgid "**iOS:** SoC with 64-bit ARM CPU" msgstr "" #: ../../docs/about/system_requirements.rst:343 msgid "*Example: Apple A11 (iPhone XS/XR)*" msgstr "" #: ../../docs/about/system_requirements.rst:347 #: ../../docs/about/system_requirements.rst:351 #: ../../docs/about/system_requirements.rst:355 msgid "" "*Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple G11P (iPhone XR/XS)*" msgstr "" #: ../../docs/about/system_requirements.rst:362 msgid "**For native exports:** Android 9.0 or iOS 11.0" msgstr "" #: ../../docs/about/system_requirements.rst:363 msgid "" "**For web exports:** Latest version of Firefox, Chrome, Edge, Safari, Opera, " "Samsung Internet" msgstr "" #: ../../docs/about/system_requirements.rst:369 msgid "" "Godot doesn't use OpenGL/OpenGL ES extensions introduced after OpenGL 3.3/" "OpenGL ES 3.0, but GPUs supporting newer OpenGL/OpenGL ES versions generally " "have fewer driver issues." msgstr "" #: ../../docs/about/faq.rst:-1 msgid "FAQ" msgstr "" #: ../../docs/about/faq.rst:7 #: ../../docs/community/asset_library/what_is_assetlib.rst:42 msgid "Frequently asked questions" msgstr "Često postavljana pitanja" #: ../../docs/about/faq.rst:10 msgid "" "What can I do with Godot? How much does it cost? What are the license terms?" msgstr "Šta mogu raditi sa Godot-om? Koliko košta? Koji su uslovi licence?" #: ../../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 "" "Godot je besplatan/Libre softver otvorenog koda `Free and Open-Source " "Software `_ " "dostupan pod `OSI-approved `_ MIT " "licencom.\n" "To znači da je istovremeno i besplatan i otvorenog koda." #: ../../docs/about/faq.rst:16 msgid "In short:" msgstr "Ukratko:" #: ../../docs/about/faq.rst:18 #, fuzzy msgid "" "You are free to download and use Godot for any purpose: personal, non-" "profit, commercial, or otherwise." msgstr "" "Dozvoljeno je da preuzmete i koristite Godo slobodno i za bilo koju svrhu, " "bilo to za privatnu upotrebu, neprofitnu ili komercijalnu;" #: ../../docs/about/faq.rst:19 #, 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 "" "Možete mjenjati, redistribuirati i prilagođavati Godot kako god vam je srcu " "drago" #: ../../docs/about/faq.rst:22 #, 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 "" "Sav sadržaj dokumentacije je pod popustljivom (`CC-BY 3.0 `_) licencom, sa atribucijom \"Juan " "Linietsky, Ariel Manzur and the Godot Engine community\"." #: ../../docs/about/faq.rst:26 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 "" "Logoi i ikone su najčešće pod istom Creative Commons licencom. Ipak, neke " "biblioteke uključene u izvorni kod Godot-a mogu imati drugačije licence." #: ../../docs/about/faq.rst:30 #, fuzzy 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 "" "Za sve detalje pogledajte `COPYRIGHT.txt `_ kao i `LICENSE.txt `_ i `LOGO_LICENSE.txt `_ fajlove u Godot " "repozitoriju." #: ../../docs/about/faq.rst:35 #, fuzzy msgid "" "Also, see `the license page on the Godot website `_." msgstr "" "Takođe pogledajte `licencu na Godot sajtu `_." #: ../../docs/about/faq.rst:38 msgid "Which platforms are supported by Godot?" msgstr "Koje platforme su podržane u Godot-u?" #: ../../docs/about/faq.rst:40 #, fuzzy msgid "**For the editor:**" msgstr "**Za uređivač:**" #: ../../docs/about/faq.rst:42 ../../docs/about/faq.rst:50 #: ../../docs/about/faq.rst:226 #: ../../docs/tutorials/rendering/jitter_stutter.rst:84 #: ../../docs/tutorials/ui/gui_using_fonts.rst:764 #: ../../docs/contributing/development/debugging/vulkan/vulkan_validation_layers.rst:16 #: ../../docs/contributing/documentation/building_the_manual.rst:29 #: ../../docs/contributing/documentation/building_the_manual.rst:45 #: ../../docs/contributing/documentation/building_the_manual.rst:61 #: ../../docs/contributing/documentation/building_the_manual.rst:145 msgid "Windows" msgstr "Windows" #: ../../docs/about/faq.rst:43 ../../docs/about/faq.rst:51 #: ../../docs/about/faq.rst:237 #: ../../docs/tutorials/editor/default_key_mapping.rst:29 #: ../../docs/tutorials/editor/default_key_mapping.rst:94 #: ../../docs/tutorials/editor/default_key_mapping.rst:147 #: ../../docs/tutorials/editor/default_key_mapping.rst:222 #: ../../docs/tutorials/editor/default_key_mapping.rst:303 #: ../../docs/tutorials/editor/default_key_mapping.rst:350 #: ../../docs/tutorials/editor/default_key_mapping.rst:361 #: ../../docs/tutorials/editor/default_key_mapping.rst:374 #: ../../docs/tutorials/editor/default_key_mapping.rst:405 #: ../../docs/tutorials/editor/default_key_mapping.rst:418 #: ../../docs/tutorials/editor/default_key_mapping.rst:441 #: ../../docs/tutorials/editor/default_key_mapping.rst:458 #: ../../docs/tutorials/editor/default_key_mapping.rst:497 #: ../../docs/tutorials/rendering/jitter_stutter.rst:133 #: ../../docs/contributing/development/debugging/vulkan/vulkan_validation_layers.rst:30 msgid "macOS" msgstr "" #: ../../docs/about/faq.rst:44 ../../docs/about/faq.rst:52 #: ../../docs/contributing/development/debugging/vulkan/vulkan_validation_layers.rst:58 msgid "Linux, \\*BSD" msgstr "" #: ../../docs/about/faq.rst:45 msgid "Android (experimental)" msgstr "" #: ../../docs/about/faq.rst:46 msgid "`Web `__ (experimental)" msgstr "" #: ../../docs/about/faq.rst:48 msgid "**For exporting your games:**" msgstr "**Za izvoz vaših igara:**" #: ../../docs/about/faq.rst:53 #: ../../docs/tutorials/export/one-click_deploy.rst:68 #: ../../docs/tutorials/platform/android/index.rst:2 #: ../../docs/tutorials/rendering/jitter_stutter.rst:140 #: ../../docs/tutorials/ui/gui_using_fonts.rst:764 #: ../../docs/contributing/development/debugging/vulkan/vulkan_validation_layers.rst:135 msgid "Android" msgstr "" #: ../../docs/about/faq.rst:54 #: ../../docs/tutorials/rendering/jitter_stutter.rst:147 #: ../../docs/contributing/development/debugging/vulkan/vulkan_validation_layers.rst:141 msgid "iOS" msgstr "" #: ../../docs/about/faq.rst:55 #: ../../docs/contributing/development/compiling/optimizing_for_size.rst:298 #: ../../docs/contributing/development/debugging/using_sanitizers.rst:166 #: ../../docs/contributing/development/debugging/vulkan/vulkan_validation_layers.rst:146 msgid "Web" msgstr "" #: ../../docs/about/faq.rst:57 #, fuzzy msgid "" "Both 32- and 64-bit binaries are supported where it makes sense, with 64 " "being the default. Official macOS builds support Apple Silicon natively as " "well as x86_64." msgstr "" "32-bitni i 64-bitni izvoz je podržan gdje god je to moguće, s tim da je 64-" "bitni uobičajeni izbor." #: ../../docs/about/faq.rst:60 msgid "" "Some users also report building and using Godot successfully on ARM-based " "systems with Linux, like the Raspberry Pi." msgstr "" #: ../../docs/about/faq.rst:63 msgid "" "The Godot team can't provide an open source console export due to the " "licensing terms imposed by console manufacturers. Regardless of the engine " "you use, though, releasing games on consoles is always a lot of work. You " "can read more about :ref:`doc_consoles`." msgstr "" #: ../../docs/about/faq.rst:68 msgid "" "For more on this, see the sections on :ref:`exporting ` and :ref:`compiling Godot yourself `." msgstr "" "Za više podataka o ovome, pogledajte sekcije :ref:`izvoz` and :ref:`kompajlirajte Godot sami `." #: ../../docs/about/faq.rst:73 msgid "" "Godot 3 also had support for Universal Windows Platform (UWP). This platform " "port was removed in Godot 4 due to lack of maintenance, and it being " "deprecated by Microsoft. It is still available in the current stable release " "of Godot 3 for interested users." msgstr "" #: ../../docs/about/faq.rst:79 #, fuzzy msgid "Which programming languages are supported in Godot?" msgstr "Koji jezici su podržani u Godot-u?" #: ../../docs/about/faq.rst:81 msgid "" "The officially supported languages for Godot are GDScript, C#, and C++. See " "the subcategories for each language in the :ref:`scripting ` section." msgstr "" #: ../../docs/about/faq.rst:84 msgid "" "If you are just starting out with either Godot or game development in " "general, GDScript is the recommended language to learn and use since it is " "native to Godot. While scripting languages tend to be less performant than " "lower-level languages in the long run, for prototyping, developing Minimum " "Viable Products (MVPs), and focusing on Time-To-Market (TTM), GDScript will " "provide a fast, friendly, and capable way of developing your games." msgstr "" #: ../../docs/about/faq.rst:91 msgid "" "Note that C# support is still relatively new, and as such, you may encounter " "some issues along the way. C# support is also currently missing on the web " "platform. Our friendly and hard-working development community is always " "ready to tackle new problems as they arise, but since this is an open source " "project, we recommend that you first do some due diligence yourself. " "Searching through discussions on `open issues `__ " "is a great way to start your troubleshooting." msgstr "" #: ../../docs/about/faq.rst:100 msgid "" "As for new languages, support is possible via third parties with " "GDExtensions. (See the question about plugins below). Work is currently " "underway, for example, on unofficial bindings for Godot to `Python `_ and `Nim `_." msgstr "" #: ../../docs/about/faq.rst:107 msgid "What is GDScript and why should I use it?" msgstr "" #: ../../docs/about/faq.rst:109 msgid "" "GDScript is Godot's integrated scripting language. It was built from the " "ground up to maximize Godot's potential in the least amount of code, " "affording both novice and expert developers alike to capitalize on Godot's " "strengths as fast as possible. If you've ever written anything in a language " "like Python before, then you'll feel right at home. For examples and a " "complete overview of the power GDScript offers you, check out the :ref:" "`GDScript scripting guide `." msgstr "" #: ../../docs/about/faq.rst:116 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. The most salient reason is the overall **reduction of " "complexity**." msgstr "" #: ../../docs/about/faq.rst:120 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:128 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:137 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:141 msgid "What were the motivations behind creating GDScript?" msgstr "" #: ../../docs/about/faq.rst:143 msgid "" "In the early days, the engine used the `Lua `__ " "scripting language. Lua can be fast thanks to LuaJIT, 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 " "`__, that also proved difficult to embed." msgstr "" #: ../../docs/about/faq.rst:149 msgid "" "The main reasons for creating a custom scripting language for Godot were:" msgstr "" #: ../../docs/about/faq.rst:151 msgid "" "Poor threading support in most script VMs, and Godot uses threads (Lua, " "Python, Squirrel, JavaScript, ActionScript, etc.)." msgstr "" #: ../../docs/about/faq.rst:153 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:155 msgid "" "Many existing languages have horrible interfaces for binding to C++, " "resulting in a 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 number of integrations." msgstr "" #: ../../docs/about/faq.rst:159 msgid "" "No native vector types (Vector3, Transform3D, etc.), resulting in highly " "reduced performance when using custom types (Lua, Python, Squirrel, " "JavaScript, ActionScript, etc.)." msgstr "" #: ../../docs/about/faq.rst:162 msgid "" "Garbage collector results in stalls or unnecessarily large memory usage " "(Lua, Python, JavaScript, ActionScript, etc.)." msgstr "" #: ../../docs/about/faq.rst:164 msgid "" "Difficulty integrating with the code editor for providing code completion, " "live editing, etc. (all of them)." msgstr "" #: ../../docs/about/faq.rst:167 msgid "GDScript was designed to curtail the issues above, and more." msgstr "" #: ../../docs/about/faq.rst:170 msgid "What 3D model formats does Godot support?" msgstr "" #: ../../docs/about/faq.rst:172 msgid "" "You can find detailed information on supported formats, how to export them " "from your 3D modeling software, and how to import them for Godot in the :ref:" "`doc_importing_3d_scenes` documentation." msgstr "" #: ../../docs/about/faq.rst:177 msgid "" "Will [insert closed SDK such as FMOD, GameWorks, etc.] be supported in Godot?" msgstr "" #: ../../docs/about/faq.rst:179 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:184 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:188 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:191 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:197 msgid "How can I extend Godot?" msgstr "" #: ../../docs/about/faq.rst:199 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:203 msgid "" "Also, see the official blog post on GDExtension, a way to develop native " "extensions for Godot:" msgstr "" #: ../../docs/about/faq.rst:205 msgid "" "`Introducing GDNative's successor, GDExtension `_" msgstr "" #: ../../docs/about/faq.rst:207 msgid "" "You can also take a look at the GDScript implementation, the Godot modules, " "as well as the `Jolt physics engine integration `__ for Godot. This would be a good starting point to see " "how another third-party library integrates with Godot." msgstr "" #: ../../docs/about/faq.rst:213 msgid "" "How do I install the Godot editor on my system (for desktop integration)?" msgstr "" #: ../../docs/about/faq.rst:215 msgid "" "Since you don't need to actually install Godot on your system to run it, " "this means desktop integration is not performed automatically. There are two " "ways to overcome this. You can install Godot from `Steam `__ (all platforms), `Scoop " "`__ (Windows), `Homebrew `__ (macOS) or " "`Flathub `__ " "(Linux). This will automatically perform the required steps for desktop " "integration." msgstr "" #: ../../docs/about/faq.rst:223 msgid "" "Alternatively, you can manually perform the steps that an installer would do " "for you:" msgstr "" #: ../../docs/about/faq.rst:228 msgid "" "Move the Godot executable to a stable location (i.e. outside of your " "Downloads folder), so you don't accidentally move it and break the shortcut " "in the future." msgstr "" #: ../../docs/about/faq.rst:230 msgid "Right-click the Godot executable and choose **Create Shortcut**." msgstr "" #: ../../docs/about/faq.rst:231 msgid "" "Move the created shortcut to ``%APPDATA%\\Microsoft\\Windows\\Start " "Menu\\Programs``. This is the user-wide location for shortcuts that will " "appear in the Start menu. You can also pin Godot in the task bar by right-" "clicking the executable and choosing **Pin to Task Bar**." msgstr "" #: ../../docs/about/faq.rst:239 msgid "" "Drag the extracted Godot application to ``/Applications/Godot.app``, then " "drag it to the Dock if desired. Spotlight will be able to find Godot as long " "as it's in ``/Applications`` or ``~/Applications``." msgstr "" #: ../../docs/about/faq.rst:244 #: ../../docs/tutorials/inputs/controllers_gamepads_joysticks.rst:347 #: ../../docs/tutorials/rendering/jitter_stutter.rst:114 #: ../../docs/tutorials/ui/gui_using_fonts.rst:764 msgid "Linux" msgstr "" #: ../../docs/about/faq.rst:246 msgid "" "Move the Godot binary to a stable location (i.e. outside of your Downloads " "folder), so you don't accidentally move it and break the shortcut in the " "future." msgstr "" #: ../../docs/about/faq.rst:248 msgid "" "Rename and move the Godot binary to a location present in your ``PATH`` " "environment variable. This is typically ``/usr/local/bin/godot`` or ``/usr/" "bin/godot``. Doing this requires administrator privileges, but this also " "allows you to :ref:`run the Godot editor from a terminal " "` by entering ``godot``." msgstr "" #: ../../docs/about/faq.rst:254 msgid "" "If you cannot move the Godot editor binary to a protected location, you can " "keep the binary somewhere in your home directory, and modify the ``Path=`` " "line in the ``.desktop`` file linked below to contain the full *absolute* " "path to the Godot binary." msgstr "" #: ../../docs/about/faq.rst:259 msgid "" "Save `this .desktop file `__ to ``$HOME/." "local/share/applications/``. If you have administrator privileges, you can " "also save the ``.desktop`` file to ``/usr/local/share/applications`` to make " "the shortcut available for all users." msgstr "" #: ../../docs/about/faq.rst:265 msgid "Is the Godot editor a portable application?" msgstr "" #: ../../docs/about/faq.rst:267 msgid "" "In its default configuration, Godot is *semi-portable*. Its executable can " "run from any location (including non-writable locations) and never requires " "administrator privileges." msgstr "" #: ../../docs/about/faq.rst:271 msgid "" "However, configuration files will be written to the user-wide configuration " "or data directory. This is usually a good approach, but this means " "configuration files will not carry across machines if you copy the folder " "containing the Godot executable. See :ref:`doc_data_paths` for more " "information." msgstr "" #: ../../docs/about/faq.rst:276 msgid "" "If *true* portable operation is desired (e.g. for use on an USB stick), " "follow the steps in :ref:`doc_data_paths_self_contained_mode`." msgstr "" #: ../../docs/about/faq.rst:280 msgid "Why does Godot use Vulkan or OpenGL instead of Direct3D?" msgstr "" #: ../../docs/about/faq.rst:282 msgid "" "Godot aims for cross-platform compatibility and open standards first and " "foremost. OpenGL and Vulkan are the technologies that are both open and " "available on (nearly) all platforms. Thanks to this design decision, a " "project developed with Godot on Windows will run out of the box on Linux, " "macOS, and more." msgstr "" #: ../../docs/about/faq.rst:288 msgid "" "Since Godot only has a few people working on its renderer, we would prefer " "having fewer rendering backends to maintain. On top of that, using a single " "API on all platforms allows for greater consistency with fewer platform-" "specific issues." msgstr "" #: ../../docs/about/faq.rst:293 msgid "" "In the long term, we may develop a Direct3D 12 renderer for Godot (mainly " "for Xbox), but Vulkan and OpenGL will remain the default rendering backends " "on all platforms, including Windows." msgstr "" #: ../../docs/about/faq.rst:298 msgid "Why does Godot aim to keep its core feature set small?" msgstr "" #: ../../docs/about/faq.rst:300 msgid "" "Godot intentionally does not include features that can be implemented by add-" "ons unless they are used very often. One example of something not used often " "is advanced artificial intelligence functionality." msgstr "" #: ../../docs/about/faq.rst:304 #, fuzzy msgid "There are several reasons for this:" msgstr "Ne postoje ograničenja prilikom korištenja Godot-a" #: ../../docs/about/faq.rst:306 msgid "" "**Code maintenance and surface for bugs.** Every time we accept new code in " "the Godot repository, existing contributors often take the responsibility of " "maintaining it. Some contributors don't always stick around after getting " "their code merged, which can make it difficult for us to maintain the code " "in question. This can lead to poorly maintained features with bugs that are " "never fixed. On top of that, the \"API surface\" that needs to be tested and " "checked for regressions keeps increasing over time." msgstr "" #: ../../docs/about/faq.rst:314 msgid "" "**Ease of contribution.** By keeping the codebase small and tidy, it can " "remain fast and easy to compile from source. This makes it easier for new " "contributors to get started with Godot, without requiring them to purchase " "high-end hardware." msgstr "" #: ../../docs/about/faq.rst:319 msgid "" "**Keeping the binary size small for the editor.** Not everyone has a fast " "Internet connection. Ensuring that everyone can download the Godot editor, " "extract it and run it in less than 5 minutes makes Godot more accessible to " "developers in all countries." msgstr "" #: ../../docs/about/faq.rst:324 msgid "" "**Keeping the binary size small for export templates.** This directly " "impacts the size of projects exported with Godot. On mobile and web " "platforms, keeping file sizes low is important to ensure fast installation " "and loading on underpowered devices. Again, there are many countries where " "high-speed Internet is not readily available. To add to this, strict data " "usage caps are often in effect in those countries." msgstr "" #: ../../docs/about/faq.rst:331 msgid "" "For all the reasons above, we have to be selective of what we can accept as " "core functionality in Godot. This is why we are aiming to move some core " "functionality to officially supported add-ons in future versions of Godot. " "In terms of binary size, this also has the advantage of making you pay only " "for what you actually use in your project. (In the meantime, you can :ref:" "`compile custom export templates with unused features disabled " "` to optimize the distribution size of your " "project.)" msgstr "" #: ../../docs/about/faq.rst:340 msgid "" "How should assets be created to handle multiple resolutions and aspect " "ratios?" msgstr "" #: ../../docs/about/faq.rst:342 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:350 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 " "vertical or horizontal FOV." msgstr "" #: ../../docs/about/faq.rst:355 msgid "" "Choose a single base resolution for your game. Even if there are devices " "that go up to 1440p and devices that go down to 400p, regular hardware " "scaling in your device will take care of this at little or no performance " "cost. The 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:363 msgid "" "Use the stretch options in Godot; canvas items stretching while keeping " "aspect ratios works best. Check the :ref:`doc_multiple_resolutions` tutorial " "on how to achieve this." msgstr "" #: ../../docs/about/faq.rst:367 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:372 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:376 msgid "And that's it! Your game should work in multiple resolutions." msgstr "" #: ../../docs/about/faq.rst:379 msgid "When is the next release of Godot out?" msgstr "" #: ../../docs/about/faq.rst:381 msgid "" "When it's ready! See :ref:`doc_release_policy_when_is_next_release_out` for " "more information." msgstr "" #: ../../docs/about/faq.rst:385 #, fuzzy msgid "Which Godot version should I use for a new project?" msgstr "Kreiranje Sadržaja" #: ../../docs/about/faq.rst:387 msgid "" "We recommend using Godot 4.x for new projects, but depending on the feature " "set you need, it may be better to use 3.x instead. See :ref:" "`doc_release_policy_which_version_should_i_use` for more information." msgstr "" #: ../../docs/about/faq.rst:392 msgid "Should I upgrade my project to use new Godot versions?" msgstr "" #: ../../docs/about/faq.rst:394 msgid "" "Some new versions are safer to upgrade to than others. In general, whether " "you should upgrade depends on your project's circumstances. See :ref:" "`doc_release_policy_should_i_upgrade_my_project` for more information." msgstr "" #: ../../docs/about/faq.rst:399 msgid "I would like to contribute! How can I get started?" msgstr "" #: ../../docs/about/faq.rst:401 msgid "" "Awesome! As an open source project, Godot thrives off of the innovation and " "the ambition of developers like you." msgstr "" #: ../../docs/about/faq.rst:404 msgid "" "The best way to start contributing to Godot is by using it and reporting any " "`issues `_ that you might " "experience. A good bug report with clear reproduction steps helps your " "fellow contributors fix bugs quickly and efficiently. You can also report " "issues you find in the `online documentation `_." msgstr "" #: ../../docs/about/faq.rst:410 msgid "" "If you feel ready to submit your first PR, pick any issue that resonates " "with you from one of the links above and try your hand at fixing it. You " "will need to learn how to compile the engine from sources, or how to build " "the documentation. You also need to get familiar with Git, a version control " "system that Godot developers use." msgstr "" #: ../../docs/about/faq.rst:415 msgid "" "We explain how to work with the engine source, how to edit the " "documentation, and what other ways to contribute are there in our :ref:" "`documentation for contributors `." msgstr "" #: ../../docs/about/faq.rst:419 msgid "I have a great idea for Godot. How can I share it?" msgstr "" #: ../../docs/about/faq.rst:421 msgid "" "We are always looking for suggestions about how to improve the engine. User " "feedback is the main driving force behind our decision-making process, and " "limitations that you might face while working on your project are a great " "data point for us when considering engine enhancements." msgstr "" #: ../../docs/about/faq.rst:426 msgid "" "If you experience a usability problem or are missing a feature in the " "current version of Godot, start by discussing it with our `community " "`_. There may be other, perhaps better, " "ways to achieve the desired result that community members could suggest. And " "you can learn if other users experience the same issue, and figure out a " "good solution together." msgstr "" #: ../../docs/about/faq.rst:432 msgid "" "If you come up with a well-defined idea for the engine, feel free to open a " "`proposal issue `_. " "Try to be specific and concrete while describing your problem and your " "proposed solution — only actionable proposals can be considered. It is not " "required, but if you want to implement it yourself, that's always " "appreciated!" msgstr "" #: ../../docs/about/faq.rst:438 msgid "" "If you only have a general idea without specific details, you can open a " "`proposal discussion `_. These can be anything you want, and allow for a free-form " "discussion in search of a solution. Once you find one, a proposal issue can " "be opened." msgstr "" #: ../../docs/about/faq.rst:443 msgid "" "Please, read the `readme `_ document before creating a proposal to learn more " "about the process." msgstr "" #: ../../docs/about/faq.rst:449 msgid "Is it possible to use Godot to create non-game applications?" msgstr "" #: ../../docs/about/faq.rst:451 msgid "" "Yes! Godot features an extensive built-in UI system, and its small " "distribution size can make it a suitable alternative to frameworks like " "Electron or Qt." msgstr "" #: ../../docs/about/faq.rst:454 msgid "" "When creating a non-game application, make sure to enable :ref:`low-" "processor mode ` in the Project Settings to decrease CPU and GPU usage." msgstr "" #: ../../docs/about/faq.rst:458 msgid "" "Check out `Material Maker `__ " "and `Pixelorama `__ for " "examples of open source applications made with Godot." msgstr "" #: ../../docs/about/faq.rst:465 msgid "Is it possible to use Godot as a library?" msgstr "" #: ../../docs/about/faq.rst:467 msgid "" "Godot is meant to be used with its editor. We recommend you give it a try, " "as it will most likely save you time in the long term. There are no plans to " "make Godot usable as a library, as it would make the rest of the engine more " "convoluted and difficult to use for casual users." msgstr "" #: ../../docs/about/faq.rst:472 msgid "" "If you want to use a rendering library, look into using an established " "rendering engine instead. Keep in mind rendering engines usually have " "smaller communities compared to Godot. This will make it more difficult to " "find answers to your questions." msgstr "" #: ../../docs/about/faq.rst:478 msgid "What user interface toolkit does Godot use?" msgstr "" #: ../../docs/about/faq.rst:480 msgid "" "Godot does not use a standard :abbr:`GUI (Graphical User Interface)` toolkit " "like GTK, Qt or wxWidgets. Instead, Godot uses its own user interface " "toolkit, rendered using OpenGL ES or Vulkan. This toolkit is exposed in the " "form of Control nodes, which are used to render the editor (which is written " "in C++). These Control nodes can also be used in projects from any scripting " "language supported by Godot." msgstr "" #: ../../docs/about/faq.rst:487 msgid "" "This custom toolkit makes it possible to benefit from hardware acceleration " "and have a consistent appearance across all platforms. On top of that, it " "doesn't have to deal with the LGPL licensing caveats that come with GTK or " "Qt. Lastly, this means Godot is \"eating its own dog food\" since the editor " "itself is one of the most complex users of Godot's UI system." msgstr "" #: ../../docs/about/faq.rst:493 msgid "" "This custom UI toolkit :ref:`can't be used as a library " "`, but you can still :ref:`use Godot to create " "non-game applications by using the editor `." msgstr "" #: ../../docs/about/faq.rst:500 msgid "Why does Godot use the SCons build system?" msgstr "" #: ../../docs/about/faq.rst:502 msgid "" "Godot uses the `SCons `__ build system. There are no " "plans to switch to a different build system in the near future. There are " "many reasons why we have chosen SCons over other alternatives. For example:" msgstr "" #: ../../docs/about/faq.rst:506 msgid "" "Godot can be compiled for a dozen different platforms: all PC platforms, all " "mobile platforms, many consoles, and WebAssembly." msgstr "" #: ../../docs/about/faq.rst:508 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " "reconfiguring and rebuilding the project each time. SCons can do this with " "no sweat, without breaking the builds." msgstr "" #: ../../docs/about/faq.rst:512 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc." msgstr "" #: ../../docs/about/faq.rst:514 msgid "" "Godot's build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " "customization (:ref:`modules `). This requires " "complex logic which is easier to write in an actual programming language " "(like Python) rather than using a mostly macro-based language only meant for " "building." msgstr "" #: ../../docs/about/faq.rst:519 msgid "" "Godot's build process makes heavy use of cross-compiling tools. Each " "platform has a specific detection process, and all these must be handled as " "specific cases with special code written for each." msgstr "" #: ../../docs/about/faq.rst:523 msgid "" "Please try to keep an open mind and get at least a little familiar with " "SCons if you are planning to build Godot yourself." msgstr "" #: ../../docs/about/faq.rst:529 msgid "Why does Godot not use STL (Standard Template Library)?" msgstr "" #: ../../docs/about/faq.rst:531 msgid "" "Like many other libraries (Qt as an example), Godot does not make use of STL " "(with a few exceptions such as threading primitives). We believe STL is a " "great general-purpose library, but we had special requirements for Godot." msgstr "" #: ../../docs/about/faq.rst:535 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:537 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:541 msgid "" "Our containers have memory tracking built-in, which helps better track " "memory usage." msgstr "" #: ../../docs/about/faq.rst:542 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:544 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:548 msgid "Why does Godot not use exceptions?" msgstr "" #: ../../docs/about/faq.rst:550 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:555 msgid "" "Additionally, exceptions significantly increase the binary size for the " "executable and result in increased compile times." msgstr "" #: ../../docs/about/faq.rst:559 msgid "Does Godot use an ECS (Entity Component System)?" msgstr "" #: ../../docs/about/faq.rst:561 msgid "" "Godot does **not** use an ECS and relies on inheritance instead. While there " "is no universally better approach, we found that using an inheritance-based " "approach resulted in better usability while still being fast enough for most " "use cases." msgstr "" #: ../../docs/about/faq.rst:565 msgid "" "That said, nothing prevents you from making use of composition in your " "project by creating child Nodes with individual scripts. These nodes can " "then be added and removed at run-time to dynamically add and remove " "behaviors." msgstr "" #: ../../docs/about/faq.rst:569 msgid "" "More information about Godot's design choices can be found in `this article " "`__." msgstr "" #: ../../docs/about/faq.rst:573 msgid "Why does Godot not force users to implement DOD (Data-Oriented Design)?" msgstr "" #: ../../docs/about/faq.rst:575 msgid "" "While Godot internally attempts to use cache coherency as much as possible, " "we believe users don't need to be forced to use DOD practices." msgstr "" #: ../../docs/about/faq.rst:578 msgid "" "DOD is mostly a cache coherency optimization that can only provide " "significant performance improvements when dealing with dozens of thousands " "of objects which are processed every frame with little modification. That " "is, if you are moving a few hundred sprites or enemies per frame, DOD won't " "result in a meaningful improvement in performance. In such a case, you " "should consider a different approach to optimization." msgstr "" #: ../../docs/about/faq.rst:585 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:588 msgid "" "If a game needs to process such a large amount of objects, our " "recommendation is to use C++ and GDExtensions for performance-heavy tasks " "and GDScript (or C#) for the rest of the game." msgstr "" #: ../../docs/about/faq.rst:593 msgid "How can I support Godot development or contribute?" msgstr "" #: ../../docs/about/faq.rst:595 msgid "See :ref:`doc_ways_to_contribute`." msgstr "" #: ../../docs/about/faq.rst:598 msgid "Who is working on Godot? How can I contact you?" msgstr "" #: ../../docs/about/faq.rst:600 msgid "" "See the corresponding page on the `Godot website `_." msgstr "" #: ../../docs/about/complying_with_licenses.rst:4 #, fuzzy msgid "Complying with licenses" msgstr "Kreiranje Sadržaja" #: ../../docs/about/complying_with_licenses.rst:7 msgid "What are licenses?" msgstr "" #: ../../docs/about/complying_with_licenses.rst:9 msgid "" "Godot is created and distributed under the `MIT License `_. It doesn't have a sole owner either, as every " "contributor that submits code to the project does it under this same license " "and keeps ownership of the contribution." msgstr "" #: ../../docs/about/complying_with_licenses.rst:14 msgid "" "The license is the legal requirement for you (or your company) to use and " "distribute the software (and derivative projects, including games made with " "it). Your game or project can have a different license, but it still needs " "to comply with the original one." msgstr "" #: ../../docs/about/complying_with_licenses.rst:21 msgid "" "This section covers compliance with licenses from a user perspective. If you " "are interested in licence compliance as a contributor, you can find " "guidelines :ref:`here " "`." msgstr "" #: ../../docs/about/complying_with_licenses.rst:27 msgid "" "In your project's credits screen, remember to also list third-party notices " "for assets you're using, such as textures, models, sounds, music and fonts." msgstr "" #: ../../docs/about/complying_with_licenses.rst:30 msgid "" "Free assets in particular often come with licenses that require attribution. " "Double-check their license before using those assets in a project." msgstr "" #: ../../docs/about/complying_with_licenses.rst:34 #: ../../docs/tutorials/export/exporting_for_macos.rst:17 #: ../../docs/tutorials/export/exporting_for_ios.rst:22 #: ../../docs/contributing/development/compiling/compiling_for_windows.rst:14 #: ../../docs/contributing/development/compiling/compiling_for_linuxbsd.rst:14 #: ../../docs/contributing/development/compiling/compiling_for_macos.rst:14 #: ../../docs/contributing/development/compiling/compiling_for_android.rst:25 #: ../../docs/contributing/development/compiling/compiling_for_ios.rst:14 #: ../../docs/contributing/development/compiling/cross-compiling_for_ios_on_linux.rst:25 #: ../../docs/contributing/development/compiling/compiling_for_web.rst:14 #: ../../docs/contributing/development/compiling/compiling_with_dotnet.rst:9 #: ../../docs/community/asset_library/submitting_to_assetlib.rst:24 msgid "Requirements" msgstr "" #: ../../docs/about/complying_with_licenses.rst:36 msgid "" "In the case of the MIT license, the only requirement is to include the " "license text somewhere in your game or derivative project." msgstr "" #: ../../docs/about/complying_with_licenses.rst:39 msgid "This text reads as follows:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:41 msgid "This game uses Godot Engine, available under the following license:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:43 msgid "" "Copyright (c) 2014-present Godot Engine contributors. Copyright (c) " "2007-2014 Juan Linietsky, Ariel Manzur." msgstr "" #: ../../docs/about/complying_with_licenses.rst:46 #: ../../docs/about/complying_with_licenses.rst:163 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a copy " "of this software and associated documentation files (the \"Software\"), to " "deal in the Software without restriction, including without limitation the " "rights to use, copy, modify, merge, publish, distribute, sublicense, and/or " "sell copies of the Software, and to permit persons to whom the Software is " "furnished to do so, subject to the following conditions:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:48 #: ../../docs/about/complying_with_licenses.rst:165 msgid "" "The above copyright notice and this permission notice shall be included in " "all copies or substantial portions of the Software." msgstr "" #: ../../docs/about/complying_with_licenses.rst:50 #: ../../docs/about/complying_with_licenses.rst:167 msgid "" "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR " "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, " "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE " "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER " "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " "FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS " "IN THE SOFTWARE." msgstr "" #: ../../docs/about/complying_with_licenses.rst:54 msgid "" "Your games do not need to be under the same license. You are free to release " "your Godot projects under any license and to create commercial games with " "the engine." msgstr "" #: ../../docs/about/complying_with_licenses.rst:59 msgid "Inclusion" msgstr "" #: ../../docs/about/complying_with_licenses.rst:61 msgid "" "The license does not specify how it has to be included, so anything is valid " "as long as it can be displayed under some condition. These are the most " "common approaches (only need to implement one of them, not all)." msgstr "" #: ../../docs/about/complying_with_licenses.rst:67 msgid "" "Godot provides several methods to get license information in the Engine " "singleton. This allows you to source the license information directly from " "the engine binary, which prevents the information from becoming outdated if " "you update engine versions." msgstr "" #: ../../docs/about/complying_with_licenses.rst:72 msgid "For the engine itself:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:74 msgid ":ref:`Engine.get_license_text`" msgstr "" #: ../../docs/about/complying_with_licenses.rst:76 msgid "For third-party components used by the engine:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:78 msgid ":ref:`Engine.get_license_info`" msgstr "" #: ../../docs/about/complying_with_licenses.rst:79 msgid "" ":ref:`Engine.get_copyright_info`" msgstr "" #: ../../docs/about/complying_with_licenses.rst:81 msgid "" "For miscellaneous engine contributor information. You don't have to include " "these ones in your project, but they're listed here for reference:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:84 msgid ":ref:`Engine.get_author_info`" msgstr "" #: ../../docs/about/complying_with_licenses.rst:85 msgid ":ref:`Engine.get_donor_info`" msgstr "" #: ../../docs/about/complying_with_licenses.rst:88 msgid "Credits screen" msgstr "" #: ../../docs/about/complying_with_licenses.rst:90 msgid "" "Include the above license text somewhere in the credits screen. It can be at " "the bottom after showing the rest of the credits. Most large studios use " "this approach with open source licenses." msgstr "" #: ../../docs/about/complying_with_licenses.rst:95 msgid "Licenses screen" msgstr "" #: ../../docs/about/complying_with_licenses.rst:97 msgid "" "Some games have a special menu (often in the settings) to display licenses. " "This menu is typically accessed with a button called **Third-party " "Licenses** or **Open Source Licenses**." msgstr "" #: ../../docs/about/complying_with_licenses.rst:102 msgid "Output log" msgstr "" #: ../../docs/about/complying_with_licenses.rst:104 msgid "" "Printing the licensing text using the :ref:`print() " "` function may be enough on platforms where " "a global output log is readable. This is the case on desktop platforms, " "Android and HTML5 (but not iOS)." msgstr "" #: ../../docs/about/complying_with_licenses.rst:109 msgid "Accompanying file" msgstr "" #: ../../docs/about/complying_with_licenses.rst:111 msgid "" "If the game is distributed on desktop platforms, a file containing the " "license can be added to the software that is installed to the user PC." msgstr "" #: ../../docs/about/complying_with_licenses.rst:115 msgid "Printed manual" msgstr "" #: ../../docs/about/complying_with_licenses.rst:117 msgid "" "If the game includes printed manuals, license text can be included there." msgstr "" #: ../../docs/about/complying_with_licenses.rst:120 #, fuzzy msgid "Link to the license" msgstr "Kreiranje Sadržaja" #: ../../docs/about/complying_with_licenses.rst:122 msgid "" "The Godot Engine developers consider that a link to ``godotengine.org/" "license`` in your game documentation or credits would be an acceptable way " "to satisfy the license terms." msgstr "" #: ../../docs/about/complying_with_licenses.rst:127 msgid "Third-party licenses" msgstr "" #: ../../docs/about/complying_with_licenses.rst:129 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not require " "license inclusion, but some do. Make sure to do it if these are compiled in " "your Godot export template. If you're using the official export templates, " "all libraries are enabled. This means you need to provide attribution for " "all the libraries listed below." msgstr "" #: ../../docs/about/complying_with_licenses.rst:136 msgid "Here's a list of libraries requiring attribution:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:139 msgid "FreeType" msgstr "" #: ../../docs/about/complying_with_licenses.rst:141 msgid "" "Godot uses `FreeType `_ to render fonts. Its " "license requires attribution, so the following text must be included " "together with the Godot license:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:145 msgid "" "Portions of this software are copyright © The FreeType Project (www." "freetype.org). All rights reserved." msgstr "" #: ../../docs/about/complying_with_licenses.rst:149 msgid "" " should correspond to the value from the FreeType version used in your " "build. This information can be found in the editor by opening the **Help > " "About** dialog and going to the **Third-party Licenses** tab." msgstr "" #: ../../docs/about/complying_with_licenses.rst:155 msgid "ENet" msgstr "" #: ../../docs/about/complying_with_licenses.rst:157 msgid "" "Godot includes the `ENet `_ library to handle high-" "level multiplayer. ENet has similar licensing terms as Godot:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:161 msgid "Copyright (c) 2002-2020 Lee Salzman" msgstr "" #: ../../docs/about/complying_with_licenses.rst:170 msgid "mbed TLS" msgstr "" #: ../../docs/about/complying_with_licenses.rst:172 msgid "" "If the project is exported with Godot 3.1 or later, it includes `mbed TLS " "`_. The Apache license needs to be complied to by " "including the following text:" msgstr "" #: ../../docs/about/complying_with_licenses.rst:175 msgid "Copyright The Mbed TLS Contributors" msgstr "" #: ../../docs/about/complying_with_licenses.rst:177 msgid "" "Licensed under the Apache License, Version 2.0 (the \"License\"); you may " "not use this file except in compliance with the License. You may obtain a " "copy of the License at" msgstr "" #: ../../docs/about/complying_with_licenses.rst:181 msgid "http://www.apache.org/licenses/LICENSE-2.0" msgstr "" #: ../../docs/about/complying_with_licenses.rst:183 msgid "" "Unless required by applicable law or agreed to in writing, software " "distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT " "WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the " "License for the specific language governing permissions and limitations " "under the License." msgstr "" #: ../../docs/about/complying_with_licenses.rst:191 msgid "" "If you exported your project using a :ref:`custom build with specific " "modules disabled `, you don't need to list the " "disabled modules' licenses in your exported project." msgstr "" #: ../../docs/about/release_policy.rst:4 msgid "Godot release policy" msgstr "" #: ../../docs/about/release_policy.rst:6 msgid "" "Godot's release policy is in constant evolution. The description below " "provides a general idea of what to expect, but what will actually happen " "depends on the choices of core contributors and the needs of the community " "at a given time." msgstr "" #: ../../docs/about/release_policy.rst:12 msgid "Godot versioning" msgstr "" #: ../../docs/about/release_policy.rst:14 msgid "" "Godot loosely follows `Semantic Versioning `__ with a " "``major.minor.patch`` versioning system, albeit with an interpretation of " "each term adapted to the complexity of a game engine:" msgstr "" #: ../../docs/about/release_policy.rst:18 msgid "" "The ``major`` version is incremented when major compatibility breakages " "happen which imply significant porting work to move projects from one major " "version to another." msgstr "" #: ../../docs/about/release_policy.rst:22 msgid "" "For example, porting Godot projects from Godot 3.x to Godot 4.x requires " "running the project through a conversion tool, and then performing a number " "of further adjustments manually for what the tool could not do automatically." msgstr "" #: ../../docs/about/release_policy.rst:26 msgid "" "The ``minor`` version is incremented for feature releases that do not break " "compatibility in a major way. Minor compatibility breakage in very specific " "areas *may* happen in minor versions, but the vast majority of projects " "should not be affected or require significant porting work." msgstr "" #: ../../docs/about/release_policy.rst:31 msgid "" "This is because Godot, as a game engine, covers many areas like rendering, " "physics, and scripting. Fixing bugs or implementing new features in one area " "might sometimes require changing a feature's behavior or modifying a class's " "interface, even if the rest of the engine API remains backwards compatible." msgstr "" #: ../../docs/about/release_policy.rst:38 msgid "" "Upgrading to a new minor version is recommended for all users, but some " "testing is necessary to ensure that your project still behaves as expected." msgstr "" #: ../../docs/about/release_policy.rst:42 msgid "" "The ``patch`` version is incremented for maintenance releases which focus on " "fixing bugs and security issues, implementing new requirements for platform " "support, and backporting safe usability enhancements. Patch releases are " "backwards compatible." msgstr "" #: ../../docs/about/release_policy.rst:47 msgid "" "Patch versions may include minor new features which do not impact the " "existing API, and thus have no risk of impacting existing projects." msgstr "" #: ../../docs/about/release_policy.rst:52 msgid "" "Updating to new patch versions is therefore considered safe and strongly " "recommended to all users of a given stable branch." msgstr "" #: ../../docs/about/release_policy.rst:55 msgid "" "We call ``major.minor`` combinations *stable branches*. Each stable branch " "starts with a ``major.minor`` release (without the ``0`` for ``patch``) and " "is further developed for maintenance releases in a Git branch of the same " "name (for example patch updates for the 4.0 stable branch are developed in " "the ``4.0`` Git branch)." msgstr "" #: ../../docs/about/release_policy.rst:62 msgid "Release support timeline" msgstr "" #: ../../docs/about/release_policy.rst:64 msgid "" "Stable branches are supported *at least* until the next stable branch is " "released and has received its first patch update. In practice, we support " "stable branches on a *best effort* basis for as long as they have active " "users who need maintenance updates." msgstr "" #: ../../docs/about/release_policy.rst:69 msgid "" "Whenever a new major version is released, we make the previous stable branch " "a long-term supported release, and do our best to provide fixes for issues " "encountered by users of that branch who cannot port complex projects to the " "new major version. This was the case for the 2.1 branch, and is the case for " "the 3.6 branch." msgstr "" #: ../../docs/about/release_policy.rst:75 msgid "" "In a given minor release series, only the latest patch release receives " "support. If you experience an issue using an older patch release, please " "upgrade to the latest patch release of that series and test again before " "reporting an issue on GitHub." msgstr "" #: ../../docs/about/release_policy.rst:81 msgid "**Version**" msgstr "" #: ../../docs/about/release_policy.rst:81 msgid "**Release date**" msgstr "" #: ../../docs/about/release_policy.rst:81 msgid "**Support level**" msgstr "" #: ../../docs/about/release_policy.rst:83 msgid "Godot 4.3 (`master`)" msgstr "" #: ../../docs/about/release_policy.rst:83 msgid "June 2024 (estimate)" msgstr "" #: ../../docs/about/release_policy.rst:83 msgid "" "|unstable| *Development.* Receives new features, usability and performance " "improvements, as well as bug fixes, while under development." msgstr "" #: ../../docs/about/release_policy.rst:122 msgid "unstable" msgstr "" #: ../../docs/about/release_policy.rst:86 msgid "Godot 4.2" msgstr "" #: ../../docs/about/release_policy.rst:86 msgid "November 2023" msgstr "" #: ../../docs/about/release_policy.rst:86 #: ../../docs/about/release_policy.rst:89 #: ../../docs/about/release_policy.rst:97 msgid "" "|supported| Receives fixes for bugs and security issues, as well as patches " "that enable platform support." msgstr "" #: ../../docs/about/release_policy.rst:119 msgid "supported" msgstr "" #: ../../docs/about/release_policy.rst:89 msgid "Godot 4.1" msgstr "" #: ../../docs/about/release_policy.rst:89 msgid "July 2023" msgstr "" #: ../../docs/about/release_policy.rst:92 msgid "Godot 4.0" msgstr "" #: ../../docs/about/release_policy.rst:92 msgid "March 2023" msgstr "" #: ../../docs/about/release_policy.rst:92 msgid "|eol| No longer supported (last update: 4.0.4)." msgstr "" #: ../../docs/about/release_policy.rst:121 msgid "eol" msgstr "" #: ../../docs/about/release_policy.rst:94 msgid "Godot 3.6 (`3.x`, LTS)" msgstr "" #: ../../docs/about/release_policy.rst:94 msgid "Q1 2024 (estimate)" msgstr "" #: ../../docs/about/release_policy.rst:94 msgid "" "|supported| *Beta.* Receives new features, usability and performance " "improvements, as well as bug fixes, while under development." msgstr "" #: ../../docs/about/release_policy.rst:97 msgid "Godot 3.5" msgstr "" #: ../../docs/about/release_policy.rst:97 msgid "August 2022" msgstr "" #: ../../docs/about/release_policy.rst:100 msgid "Godot 3.4" msgstr "" #: ../../docs/about/release_policy.rst:100 msgid "November 2021" msgstr "" #: ../../docs/about/release_policy.rst:100 msgid "|eol| No longer supported (last update: 3.4.5)." msgstr "" #: ../../docs/about/release_policy.rst:102 msgid "Godot 3.3" msgstr "" #: ../../docs/about/release_policy.rst:102 msgid "April 2021" msgstr "" #: ../../docs/about/release_policy.rst:102 msgid "|eol| No longer supported (last update: 3.3.4)." msgstr "" #: ../../docs/about/release_policy.rst:104 msgid "Godot 3.2" msgstr "" #: ../../docs/about/release_policy.rst:104 msgid "January 2020" msgstr "" #: ../../docs/about/release_policy.rst:104 msgid "|eol| No longer supported (last update: 3.2.3)." msgstr "" #: ../../docs/about/release_policy.rst:106 msgid "Godot 3.1" msgstr "" #: ../../docs/about/release_policy.rst:106 msgid "March 2019" msgstr "" #: ../../docs/about/release_policy.rst:106 msgid "|eol| No longer supported (last update: 3.1.2)." msgstr "" #: ../../docs/about/release_policy.rst:108 msgid "Godot 3.0" msgstr "" #: ../../docs/about/release_policy.rst:108 msgid "January 2018" msgstr "" #: ../../docs/about/release_policy.rst:108 msgid "|eol| No longer supported (last update: 3.0.6)." msgstr "" #: ../../docs/about/release_policy.rst:110 msgid "Godot 2.1" msgstr "" #: ../../docs/about/release_policy.rst:110 msgid "July 2016" msgstr "" #: ../../docs/about/release_policy.rst:110 msgid "|eol| No longer supported (last update: 2.1.6)." msgstr "" #: ../../docs/about/release_policy.rst:112 msgid "Godot 2.0" msgstr "" #: ../../docs/about/release_policy.rst:112 msgid "February 2016" msgstr "" #: ../../docs/about/release_policy.rst:112 msgid "|eol| No longer supported (last update: 2.0.4.1)." msgstr "" #: ../../docs/about/release_policy.rst:114 msgid "Godot 1.1" msgstr "" #: ../../docs/about/release_policy.rst:114 msgid "May 2015" msgstr "" #: ../../docs/about/release_policy.rst:114 #: ../../docs/about/release_policy.rst:116 msgid "|eol| No longer supported." msgstr "" #: ../../docs/about/release_policy.rst:116 msgid "Godot 1.0" msgstr "" #: ../../docs/about/release_policy.rst:116 msgid "December 2014" msgstr "" #: ../../docs/about/release_policy.rst:120 msgid "partial" msgstr "" #: ../../docs/about/release_policy.rst:124 msgid "" "**Legend:** |supported| Full support – |partial| Partial support – |eol| No " "support (end of life) – |unstable| Development version" msgstr "" #: ../../docs/about/release_policy.rst:130 msgid "" "Pre-release Godot versions aren't intended to be used in production and are " "provided for testing purposes only." msgstr "" #: ../../docs/about/release_policy.rst:135 msgid "" "See :ref:`doc_upgrading_to_godot_4` for instructions on migrating a project " "from Godot 3.x to 4.x." msgstr "" #: ../../docs/about/release_policy.rst:141 msgid "Which version should I use for a new project?" msgstr "" #: ../../docs/about/release_policy.rst:143 msgid "" "We recommend using Godot 4.x for new projects, as the Godot 4.x series will " "be supported long after 3.x stops receiving updates in the future. One " "caveat is that a lot of third-party documentation hasn't been updated for " "Godot 4.x yet. If you have to follow a tutorial designed for Godot 3.x, we " "recommend keeping :ref:`doc_upgrading_to_godot_4` open in a separate tab to " "check which methods have been renamed (if you get a script error while " "trying to use a specific node or method that was renamed in Godot 4.x)." msgstr "" #: ../../docs/about/release_policy.rst:151 msgid "" "If your project requires a feature that is missing in 4.x (such as GLES2/" "WebGL 1.0), you should use Godot 3.x for a new project instead." msgstr "" #: ../../docs/about/release_policy.rst:157 msgid "Should I upgrade my project to use new engine versions?" msgstr "" #: ../../docs/about/release_policy.rst:161 msgid "" "Upgrading software while working on a project is inherently risky, so " "consider whether it's a good idea for your project before attempting an " "upgrade. Also, make backups of your project or use version control to " "prevent losing data in case the upgrade goes wrong." msgstr "" #: ../../docs/about/release_policy.rst:166 msgid "" "That said, we do our best to keep minor and especially patch releases " "compatible with existing projects." msgstr "" #: ../../docs/about/release_policy.rst:169 msgid "" "The general recommendation is to upgrade your project to follow new *patch* " "releases, such as upgrading from 4.0.2 to 4.0.3. This ensures you get bug " "fixes, security updates and platform support updates (which is especially " "important for mobile platforms). You also get continued support, as only the " "last patch release receives support on official community platforms." msgstr "" #: ../../docs/about/release_policy.rst:175 msgid "" "For *minor* releases, you should determine whether it's a good idea to " "upgrade on a case-by-case basis. We've made a lot of effort in making the " "upgrade process as seamless as possible, but some breaking changes may be " "present in minor releases, along with a greater risk of regressions. Some " "fixes included in minor releases may also change a class' expected behavior " "as required to fix some bugs. This is especially the case in classes marked " "as *experimental* in the documentation." msgstr "" #: ../../docs/about/release_policy.rst:183 msgid "" "*Major* releases bring a lot of new functionality, but they also remove " "previously existing functionality and may raise hardware requirements. They " "also require much more work to upgrade to compared to minor releases. As a " "result, we recommend sticking with the major release you've started your " "project with if you are happy with how your project currently works. For " "example, if your project was started with 3.5, we recommend upgrading to " "3.5.2 and possibly 3.6 in the future, but not to 4.0+, unless your project " "really needs the new features that come with 4.0+." msgstr "" #: ../../docs/about/release_policy.rst:195 msgid "When is the next release out?" msgstr "" #: ../../docs/about/release_policy.rst:197 msgid "" "While Godot contributors aren't working under any deadlines, we strive to " "publish minor releases relatively frequently." msgstr "" #: ../../docs/about/release_policy.rst:200 msgid "" "In particular, after the very length release cycle for 4.0, we are pivoting " "to a faster paced development workflow, 4.1 released 4 months after 4.0, and " "4.2 released 4 months after 4.1" msgstr "" #: ../../docs/about/release_policy.rst:204 msgid "" "Frequent minor releases will enable us to ship new features faster (possibly " "as experimental), get user feedback quickly, and iterate to improve those " "features and their usability. Likewise, the general user experience will be " "improved more steadily with a faster path to the end users." msgstr "" #: ../../docs/about/release_policy.rst:209 msgid "" "Maintenance (patch) releases are released as needed with potentially very " "short development cycles, to provide users of the current stable branch with " "the latest bug fixes for their production needs." msgstr "" #: ../../docs/about/release_policy.rst:213 msgid "" "The 3.6 release is still planned and should be the last stable branch of " "Godot 3.x. It will be a Long-Term Support (LTS) release, which we plan to " "support for as long as users still need it (due to missing features in Godot " "4.x, or having published games which they need to keep updating for platform " "requirements)." msgstr "" #: ../../docs/about/release_policy.rst:220 msgid "What are the criteria for compatibility across engine versions?" msgstr "" #: ../../docs/about/release_policy.rst:224 msgid "" "This section is intended to be used by contributors to determine which " "changes are safe for a given release. The list is not exhaustive; it only " "outlines the most common situations encountered during Godot's development." msgstr "" #: ../../docs/about/release_policy.rst:228 msgid "The following changes are acceptable in patch releases:" msgstr "" #: ../../docs/about/release_policy.rst:230 msgid "" "Fixing a bug in a way that has no major negative impact on most projects, " "such as a visual or physics bug. Godot's physics engine is not " "deterministic, so physics bug fixes are not considered to break " "compatibility. If fixing a bug has a negative impact that could impact a lot " "of projects, it should be made optional (e.g. using a project setting or " "separate method)." msgstr "" #: ../../docs/about/release_policy.rst:235 msgid "Adding a new optional parameter to a method." msgstr "" #: ../../docs/about/release_policy.rst:236 msgid "Small-scale editor usability tweaks." msgstr "" #: ../../docs/about/release_policy.rst:238 msgid "" "Note that we tend to be more conservative with the fixes we allow in each " "subsequent patch release. For instance, 4.0.1 may receive more impactful " "fixes than 4.0.4 would." msgstr "" #: ../../docs/about/release_policy.rst:242 msgid "" "The following changes are acceptable in minor releases, but not patch " "releases:" msgstr "" #: ../../docs/about/release_policy.rst:244 #, fuzzy msgid "Significant new features." msgstr "Kreiranje Sadržaja" #: ../../docs/about/release_policy.rst:245 msgid "" "Renaming a method parameter. In C#, method parameters can be passed by name " "(but not in GDScript). As a result, this can break some projects that use C#." msgstr "" #: ../../docs/about/release_policy.rst:247 msgid "" "Deprecating a method, member variable, or class. This is done by adding a " "deprecated flag to its class reference, which will show up in the editor. " "When a method is marked as deprecated, it's slated to be removed in the next " "*major* release." msgstr "" #: ../../docs/about/release_policy.rst:251 msgid "Changes that affect the default project theme's visuals." msgstr "" #: ../../docs/about/release_policy.rst:252 msgid "" "Bug fixes which significantly change the behavior or the output, with the " "aim to meet user expectations better. In comparison, in patch releases, we " "may favor keeping a buggy behavior so we don't break existing projects which " "likely already rely on the bug or use a workaround." msgstr "" #: ../../docs/about/release_policy.rst:256 msgid "Performance optimizations that result in visual changes." msgstr "" #: ../../docs/about/release_policy.rst:258 msgid "" "The following changes are considered **compatibility-breaking** and can only " "be performed in a new major release:" msgstr "" #: ../../docs/about/release_policy.rst:261 msgid "Renaming or removing a method, member variable, or class." msgstr "" #: ../../docs/about/release_policy.rst:262 msgid "" "Modifying a node's inheritance tree by making it inherit from a different " "class." msgstr "" #: ../../docs/about/release_policy.rst:263 msgid "" "Changing the default value of a project setting value in a way that affects " "existing projects. To only affect new projects, the project manager should " "write a modified ``project.godot`` instead." msgstr "" #: ../../docs/about/release_policy.rst:267 msgid "" "Since Godot 5.0 hasn't been branched off yet, we currently discourage making " "compatibility-breaking changes of this kind." msgstr "" #: ../../docs/about/release_policy.rst:272 msgid "" "When modifying a method's signature in any fashion (including adding an " "optional parameter), a GDExtension compatibility method must be created. " "This ensures that existing GDExtensions continue to work across patch and " "minor releases, so that users don't have to recompile them. See `pull " "request #76446 `_ for more " "information." msgstr "" #: ../../docs/about/docs_changelog.rst:4 msgid "Documentation changelog" msgstr "" #: ../../docs/about/docs_changelog.rst:6 msgid "" "The documentation is continually being improved. New releases include new " "pages, fixes and updates to existing pages, and many updates to the :ref:" "`class reference `. Below is a list of new pages added " "since version 3.0." msgstr "" #: ../../docs/about/docs_changelog.rst:11 msgid "" "This document only contains new pages so not all changes are reflected, many " "pages have been substantially updated but are not reflected in this document." msgstr "" #: ../../docs/about/docs_changelog.rst:15 msgid "New pages since version 4.1" msgstr "" #: ../../docs/about/docs_changelog.rst:18 #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:22 #: ../../docs/tutorials/performance/cpu_optimization.rst:169 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:35 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:75 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:109 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:239 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:374 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:483 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:565 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:576 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:594 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:631 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:647 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:662 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:679 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:691 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:699 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:712 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:720 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:733 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:767 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:775 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:783 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:78 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:118 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:216 msgid "C#" msgstr "" #: ../../docs/about/docs_changelog.rst:20 #, fuzzy msgid ":ref:`doc_c_sharp_diagnostics`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:23 #: ../../docs/about/docs_changelog.rst:46 #: ../../docs/about/docs_changelog.rst:95 #: ../../docs/about/docs_changelog.rst:198 msgid "Development" msgstr "Razvoj" #: ../../docs/about/docs_changelog.rst:25 #, fuzzy msgid ":ref:`doc_2d_coordinate_systems`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:28 #: ../../docs/about/docs_changelog.rst:52 #: ../../docs/about/docs_changelog.rst:100 msgid "Migrating" msgstr "" #: ../../docs/about/docs_changelog.rst:30 #, fuzzy msgid ":ref:`doc_upgrading_to_godot_4.2`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:33 msgid "I/O" msgstr "" #: ../../docs/about/docs_changelog.rst:35 #, fuzzy msgid ":ref:`doc_runtime_loading_and_saving`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:38 #: ../../docs/about/docs_changelog.rst:229 #: ../../docs/about/docs_changelog.rst:430 #: ../../docs/tutorials/platform/index.rst:4 msgid "Platform-specific" msgstr "" #: ../../docs/about/docs_changelog.rst:40 #, fuzzy msgid ":ref:`doc_android_library`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:43 msgid "New pages since version 4.0" msgstr "" #: ../../docs/about/docs_changelog.rst:48 #, fuzzy msgid ":ref:`doc_internal_rendering_architecture`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:49 #, fuzzy msgid ":ref:`doc_using_sanitizers`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_upgrading_to_godot_4.1`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:57 #: ../../docs/about/docs_changelog.rst:105 #: ../../docs/about/docs_changelog.rst:236 #: ../../docs/about/docs_changelog.rst:387 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.1.rst:104 #: ../../docs/tutorials/performance/cpu_optimization.rst:235 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" #: ../../docs/about/docs_changelog.rst:59 #, fuzzy msgid ":ref:`doc_troubleshooting_physics_issues`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:62 msgid "New pages since version 3.6" msgstr "" #: ../../docs/about/docs_changelog.rst:65 #: ../../docs/about/docs_changelog.rst:269 #: ../../docs/about/docs_changelog.rst:374 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" #: ../../docs/about/docs_changelog.rst:67 #, fuzzy msgid ":ref:`doc_2d_antialiasing`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:70 #: ../../docs/about/docs_changelog.rst:143 #: ../../docs/about/docs_changelog.rst:174 #: ../../docs/about/docs_changelog.rst:380 ../../docs/tutorials/3d/index.rst:2 #: ../../docs/tutorials/performance/index.rst:72 msgid "3D" msgstr "" #: ../../docs/about/docs_changelog.rst:72 #, fuzzy msgid ":ref:`doc_3d_antialiasing`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:73 #, fuzzy msgid ":ref:`doc_faking_global_illumination`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:74 #, fuzzy msgid ":ref:`doc_introduction_to_global_illumination`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:75 #, fuzzy msgid ":ref:`doc_mesh_lod`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_occlusion_culling`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:77 #, fuzzy msgid ":ref:`doc_using_sdfgi`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:78 #, fuzzy msgid ":ref:`doc_using_decals`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:79 #, fuzzy msgid ":ref:`doc_visibility_ranges`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:80 #, fuzzy msgid ":ref:`doc_volumetric_fog`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_variable_rate_shading`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_physical_light_and_camera_units`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_creating_movies`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:90 #: ../../docs/tutorials/assets_pipeline/index.rst:2 msgid "Assets pipeline" msgstr "" #: ../../docs/about/docs_changelog.rst:92 #, fuzzy msgid ":ref:`doc_retargeting_3d_skeletons`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:97 #, fuzzy msgid ":ref:`doc_custom_platform_ports`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:102 #, fuzzy msgid ":ref:`doc_upgrading_to_godot_4`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:107 #, fuzzy msgid ":ref:`doc_large_world_coordinates`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_custom_performance_monitors`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_c_sharp_collections`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_c_sharp_global_classes`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_c_sharp_variant`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:120 #, fuzzy msgid ":ref:`doc_compute_shaders`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:123 msgid "Workflow" msgstr "" #: ../../docs/about/docs_changelog.rst:125 #, fuzzy msgid ":ref:`doc_pr_review_guidelines`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:128 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.2.rst:216 #: ../../docs/tutorials/xr/index.rst:2 msgid "XR" msgstr "" #: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_introducing_xr_tools`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:131 #, fuzzy msgid ":ref:`doc_xr_action_map`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:132 #, fuzzy msgid ":ref:`doc_deploying_to_android`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:135 msgid "New pages since version 3.5" msgstr "" #: ../../docs/about/docs_changelog.rst:137 msgid "None." msgstr "" #: ../../docs/about/docs_changelog.rst:140 msgid "New pages since version 3.4" msgstr "" #: ../../docs/about/docs_changelog.rst:145 #, fuzzy msgid ":ref:`doc_3d_text`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:150 #, fuzzy msgid ":ref:`doc_playing_videos`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:155 #, fuzzy msgid ":ref:`doc_managing_editor_features`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:158 msgid "New pages since version 3.3" msgstr "" #: ../../docs/about/docs_changelog.rst:161 #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:33 #: ../../docs/tutorials/performance/cpu_optimization.rst:184 msgid "C++" msgstr "" #: ../../docs/about/docs_changelog.rst:163 #, fuzzy msgid ":ref:`doc_cpp_usage_guidelines`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:166 #: ../../docs/getting_started/step_by_step/scripting_languages.rst:59 #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:15 #: ../../docs/tutorials/performance/cpu_optimization.rst:160 #: ../../docs/tutorials/scripting/gdscript/index.rst:2 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:35 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:75 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:109 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:239 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:374 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:483 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:565 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:576 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:594 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:631 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:647 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:662 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:679 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:691 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:699 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:712 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:720 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:733 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:767 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:775 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:783 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:78 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:118 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:216 #: ../../docs/tutorials/scripting/debug/overview_of_debugging_tools.rst:128 msgid "GDScript" msgstr "" #: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_gdscript_documentation_comments`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:171 msgid "New pages since version 3.2" msgstr "" #: ../../docs/about/docs_changelog.rst:176 #, fuzzy msgid ":ref:`doc_3d_rendering_limitations`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:181 #, fuzzy msgid ":ref:`doc_troubleshooting`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:182 #, fuzzy msgid ":ref:`doc_list_of_features`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:183 #, fuzzy msgid ":ref:`doc_release_policy`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:186 #: ../../docs/tutorials/best_practices/index.rst:2 #: ../../docs/tutorials/assets_pipeline/importing_images.rst:537 #: ../../docs/tutorials/assets_pipeline/importing_audio_samples.rst:268 #: ../../docs/tutorials/audio/text_to_speech.rst:93 msgid "Best practices" msgstr "" #: ../../docs/about/docs_changelog.rst:188 #, fuzzy msgid ":ref:`doc_version_control_systems`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:193 msgid ":ref:`doc_best_practices_for_engine_contributors`" msgstr "" #: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_bisecting_regressions`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:195 #, fuzzy msgid ":ref:`doc_editor_and_docs_localization`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_introduction_to_editor_development`" msgstr "Uvod" #: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_editor_style_guide`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_common_engine_methods_and_macros`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:203 #, fuzzy msgid ":ref:`doc_vulkan_validation_layers`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:204 #, fuzzy msgid ":ref:`doc_gdscript_grammar`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:205 msgid "Configuring an IDE: :ref:`doc_configuring_an_ide_code_blocks`" msgstr "" #: ../../docs/about/docs_changelog.rst:210 #, fuzzy msgid ":ref:`doc_default_key_mapping`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:211 #, fuzzy msgid ":ref:`doc_using_the_web_editor`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:214 #: ../../docs/tutorials/export/index.rst:2 msgid "Export" msgstr "" #: ../../docs/about/docs_changelog.rst:216 #, fuzzy msgid ":ref:`doc_exporting_for_dedicated_servers`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:221 msgid ":ref:`doc_controllers_gamepads_joysticks`" msgstr "" #: ../../docs/about/docs_changelog.rst:224 #: ../../docs/about/docs_changelog.rst:280 #: ../../docs/tutorials/math/index.rst:2 msgid "Math" msgstr "" #: ../../docs/about/docs_changelog.rst:226 #, fuzzy msgid ":ref:`doc_random_number_generation`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:231 #, fuzzy msgid ":ref:`doc_plugins_for_ios`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:232 #, fuzzy msgid ":ref:`doc_ios_plugin`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:233 #, fuzzy msgid ":ref:`doc_html5_shell_classref`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:238 #, fuzzy msgid ":ref:`doc_collision_shapes_2d`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:239 #, fuzzy msgid ":ref:`doc_collision_shapes_3d`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:244 #, fuzzy msgid ":ref:`doc_shaders_style_guide`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:249 #, fuzzy msgid ":ref:`doc_debugger_panel`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:250 #, fuzzy msgid ":ref:`doc_creating_script_templates`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:251 #, fuzzy msgid ":ref:`doc_evaluating_expressions`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:252 #, fuzzy msgid ":ref:`doc_what_is_gdextension`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:253 msgid "" ":ref:`doc_gdscript_warning_system` (split from :ref:" "`doc_gdscript_static_typing`)" msgstr "" #: ../../docs/about/docs_changelog.rst:256 msgid "User Interface (UI)" msgstr "" #: ../../docs/about/docs_changelog.rst:258 #, fuzzy msgid ":ref:`doc_control_node_gallery`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:261 msgid "New pages since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:264 #: ../../docs/about/docs_changelog.rst:358 msgid "Project workflow" msgstr "" #: ../../docs/about/docs_changelog.rst:266 #, fuzzy msgid ":ref:`doc_android_gradle_build`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:271 #, fuzzy msgid ":ref:`doc_2d_sprite_animation`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:276 #, fuzzy msgid ":ref:`doc_recording_with_microphone`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:277 #, fuzzy msgid ":ref:`doc_sync_with_audio`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:282 #, fuzzy msgid ":ref:`doc_beziers_and_curves`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:283 #, fuzzy msgid ":ref:`doc_interpolation`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:286 msgid "Inputs" msgstr "" #: ../../docs/about/docs_changelog.rst:288 #, fuzzy msgid ":ref:`doc_input_examples`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:293 msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:296 #: ../../docs/about/docs_changelog.rst:410 #: ../../docs/tutorials/3d/standard_material_3d.rst:242 msgid "Shading" msgstr "" #: ../../docs/about/docs_changelog.rst:301 msgid "Your First Shader Series:" msgstr "" #: ../../docs/about/docs_changelog.rst:299 #: ../../docs/about/docs_changelog.rst:417 #, fuzzy msgid ":ref:`doc_introduction_to_shaders`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:300 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:301 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:302 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:303 #, fuzzy msgid ":ref:`doc_visual_shaders`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:308 msgid ":ref:`doc_webrtc`" msgstr "" #: ../../docs/about/docs_changelog.rst:311 #: ../../docs/about/docs_changelog.rst:424 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" #: ../../docs/about/docs_changelog.rst:313 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:314 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:315 #, fuzzy msgid ":ref:`doc_visual_shader_plugins`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:318 #: ../../docs/about/docs_changelog.rst:435 msgid "Multi-threading" msgstr "" #: ../../docs/about/docs_changelog.rst:320 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:323 #: ../../docs/about/docs_changelog.rst:440 #, fuzzy msgid "Creating content" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:330 msgid "Procedural geometry series:" msgstr "" #: ../../docs/about/docs_changelog.rst:326 msgid ":ref:`Procedural geometry `" msgstr "" #: ../../docs/about/docs_changelog.rst:327 #, fuzzy msgid ":ref:`doc_arraymesh`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:328 #, fuzzy msgid ":ref:`doc_surfacetool`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:329 #, fuzzy msgid ":ref:`doc_meshdatatool`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:330 #, fuzzy msgid ":ref:`doc_immediatemesh`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:333 ../../docs/tutorials/3d/index.rst:33 msgid "Optimization" msgstr "" #: ../../docs/about/docs_changelog.rst:335 msgid ":ref:`doc_using_multimesh`" msgstr "" #: ../../docs/about/docs_changelog.rst:336 msgid ":ref:`doc_using_servers`" msgstr "" #: ../../docs/about/docs_changelog.rst:339 msgid "Legal" msgstr "" #: ../../docs/about/docs_changelog.rst:341 msgid ":ref:`doc_complying_with_licenses`" msgstr "" #: ../../docs/about/docs_changelog.rst:344 msgid "New pages since version 3.0" msgstr "" #: ../../docs/about/docs_changelog.rst:347 #: ../../docs/getting_started/step_by_step/index.rst:4 #: ../../docs/contributing/development/compiling/compiling_with_script_encryption_key.rst:32 msgid "Step by step" msgstr "" #: ../../docs/about/docs_changelog.rst:349 msgid ":ref:`doc_signals`" msgstr "" #: ../../docs/about/docs_changelog.rst:350 #: ../../docs/tutorials/editor/command_line_tutorial.rst:383 msgid "Exporting" msgstr "" #: ../../docs/about/docs_changelog.rst:355 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" #: ../../docs/about/docs_changelog.rst:360 msgid "Best Practices:" msgstr "" #: ../../docs/about/docs_changelog.rst:362 msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:363 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" #: ../../docs/about/docs_changelog.rst:364 msgid ":ref:`doc_scene_organization`" msgstr "" #: ../../docs/about/docs_changelog.rst:365 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:366 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" #: ../../docs/about/docs_changelog.rst:367 msgid ":ref:`doc_node_alternatives`" msgstr "" #: ../../docs/about/docs_changelog.rst:368 msgid ":ref:`doc_godot_interfaces`" msgstr "" #: ../../docs/about/docs_changelog.rst:369 msgid ":ref:`doc_godot_notifications`" msgstr "" #: ../../docs/about/docs_changelog.rst:370 msgid ":ref:`doc_data_preferences`" msgstr "" #: ../../docs/about/docs_changelog.rst:371 msgid ":ref:`doc_logic_preferences`" msgstr "" #: ../../docs/about/docs_changelog.rst:376 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" #: ../../docs/about/docs_changelog.rst:377 msgid ":ref:`doc_2d_meshes`" msgstr "" #: ../../docs/about/docs_changelog.rst:382 msgid ":ref:`doc_csg_tools`" msgstr "" #: ../../docs/about/docs_changelog.rst:383 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" #: ../../docs/about/docs_changelog.rst:384 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" #: ../../docs/about/docs_changelog.rst:389 msgid ":ref:`doc_ragdoll_system`" msgstr "" #: ../../docs/about/docs_changelog.rst:390 msgid ":ref:`doc_soft_body`" msgstr "" #: ../../docs/about/docs_changelog.rst:395 msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:396 msgid ":ref:`doc_animation_tree`" msgstr "" #: ../../docs/about/docs_changelog.rst:399 msgid "GUI" msgstr "" #: ../../docs/about/docs_changelog.rst:401 msgid ":ref:`doc_gui_containers`" msgstr "" #: ../../docs/about/docs_changelog.rst:404 msgid "Viewports" msgstr "" #: ../../docs/about/docs_changelog.rst:406 msgid ":ref:`doc_viewport_as_texture`" msgstr "" #: ../../docs/about/docs_changelog.rst:407 msgid ":ref:`doc_custom_postprocessing`" msgstr "" #: ../../docs/about/docs_changelog.rst:412 #, fuzzy msgid ":ref:`doc_converting_glsl_to_godot_shaders`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:413 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" #: ../../docs/about/docs_changelog.rst:415 msgid "Shading Reference:" msgstr "" #: ../../docs/about/docs_changelog.rst:418 msgid ":ref:`doc_shading_language`" msgstr "" #: ../../docs/about/docs_changelog.rst:419 msgid ":ref:`doc_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:420 msgid ":ref:`doc_canvas_item_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:421 msgid ":ref:`doc_particle_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:426 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:427 #, fuzzy msgid ":ref:`doc_3d_gizmo_plugins`" msgstr "Kreiranje Sadržaja" #: ../../docs/about/docs_changelog.rst:432 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" #: ../../docs/about/docs_changelog.rst:437 msgid ":ref:`doc_thread_safe_apis`" msgstr "" #: ../../docs/about/docs_changelog.rst:442 msgid ":ref:`doc_making_trees`" msgstr "" #: ../../docs/about/docs_changelog.rst:447 msgid ":ref:`doc_jitter_stutter`" msgstr "" #: ../../docs/about/docs_changelog.rst:448 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" #: ../../docs/about/docs_changelog.rst:449 msgid ":ref:`doc_change_scenes_manually`" msgstr "" #: ../../docs/about/docs_changelog.rst:452 #: ../../docs/contributing/development/compiling/compiling_for_windows.rst:114 #: ../../docs/contributing/development/compiling/compiling_for_linuxbsd.rst:238 #: ../../docs/contributing/development/compiling/compiling_for_macos.rst:46 #: ../../docs/contributing/development/compiling/compiling_for_ios.rst:46 msgid "Compiling" msgstr "" #: ../../docs/about/docs_changelog.rst:454 msgid ":ref:`doc_optimizing_for_size`" msgstr "" #: ../../docs/about/docs_changelog.rst:455 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" #: ../../docs/about/docs_changelog.rst:458 #: ../../docs/contributing/development/index.rst:4 msgid "Engine development" msgstr "" #: ../../docs/about/docs_changelog.rst:460 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" #: ../../docs/getting_started/introduction/index.rst:10 msgid "" "This series will introduce you to Godot and give you an overview of its " "features." msgstr "" #: ../../docs/getting_started/introduction/index.rst:13 msgid "" "In the following pages, you will get answers to questions such as \"Is Godot " "for me?\" or \"What can I do with Godot?\". We will then introduce the " "engine's most essential concepts, run you through the editor's interface, " "and give you tips to make the most of your time learning it." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:4 #, fuzzy msgid "Introduction to Godot" msgstr "Uvod" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:6 msgid "" "This article is here to help you figure out whether Godot might be a good " "fit for you. We will introduce some broad features of the engine to give you " "a feel for what you can achieve with it and answer questions such as \"what " "do I need to know to get started?\"." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:11 msgid "" "This is by no means an exhaustive overview. We will introduce many more " "features in this getting started series." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:15 msgid "What is Godot?" msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:17 msgid "" "Godot is a general-purpose 2D and 3D game engine designed to support all " "sorts of projects. You can use it to create games or applications you can " "then release on desktop or mobile, as well as on the web." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:21 msgid "" "You can also create console games with it, although you either need strong " "programming skills or a developer to port the game for you." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:24 msgid "" "The Godot team can't provide an open source console export due to the " "licensing terms imposed by console manufacturers. Regardless of the engine " "you use, though, releasing games on consoles is always a lot of work. You " "can read more on that here: :ref:`doc_consoles`." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:30 msgid "What can the engine do?" msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:32 msgid "" "Godot was initially developed in-house by an Argentinian game studio. Its " "development started in 2001, and the engine was rewritten and improved " "tremendously since its open source release in 2014." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:36 msgid "" "Some examples of games created with Godot include Ex-Zodiac and Helms of " "Fury." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:42 msgid "" "As for applications, the open source pixel art drawing program Pixelorama is " "powered by Godot, and so is the voxel RPG creator RPG in a box." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:47 msgid "You can find many more examples in the `official showcase videos`_." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:50 msgid "How does it work and look?" msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:52 msgid "" "Godot comes with a fully-fledged game editor with integrated tools to answer " "the most common needs. It includes a code editor, an animation editor, a " "tilemap editor, a shader editor, a debugger, a profiler, and more." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:58 msgid "" "The team strives to offer a feature-rich game editor with a consistent user " "experience. While there is always room for improvement, the user interface " "keeps getting refined." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:62 msgid "" "Of course, if you prefer, you can work with external programs. We officially " "support importing 3D scenes designed in Blender_ and maintain plugins to " "code in VSCode_ and Emacs_ for GDScript and C#. We also support Visual " "Studio for C# on Windows." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:70 #: ../../docs/tutorials/scripting/index.rst:12 msgid "Programming languages" msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:72 msgid "Let's talk about the available programming languages." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:74 msgid "" "You can code your games using :ref:`GDScript `, a Godot-specific and tightly integrated language with a " "lightweight syntax, or :ref:`C# `, which is popular " "in the games industry. These are the two main scripting languages we support." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:79 msgid "" "With the GDExtension technology, you can also write gameplay or high-" "performance algorithms in C or C++ without recompiling the engine. You can " "use this technology to integrate third-party libraries and other Software " "Development Kits (SDK) in the engine." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:84 msgid "" "Of course, you can also directly add modules and features to the engine, as " "it's completely free and open source." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:90 msgid "What do I need to know to use Godot?" msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:92 msgid "" "Godot is a feature-packed game engine. With its thousands of features, there " "is a lot to learn. To make the most of it, you need good programming " "foundations. While we try to make the engine accessible, you will benefit a " "lot from knowing how to think like a programmer first." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:97 msgid "" "Godot relies on the object-oriented programming paradigm. Being comfortable " "with concepts such as classes and objects will help you code efficiently in " "it." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:100 msgid "" "If you are entirely new to programming, we recommend following the `CS50 " "open courseware`_ from Harvard University. It's a great free course that " "will teach you everything you need to know to be off to a good start. It " "will save you countless hours and hurdles learning any game engine afterward." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:105 msgid "" "In CS50, you will learn multiple programming languages. Don't be afraid of " "that: programming languages have many similarities. The skills you learn " "with one language transfer well to others." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:109 msgid "" "We will provide you with more Godot-specific learning resources in :ref:" "`doc_learning_new_features`." msgstr "" #: ../../docs/getting_started/introduction/introduction_to_godot.rst:112 msgid "" "In the next part, you will get an overview of the engine's essential " "concepts." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:8 msgid "Overview of Godot's key concepts" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:10 msgid "" "Every game engine revolves around abstractions you use to build your " "applications. In Godot, a game is a **tree** of **nodes** that you group " "together into **scenes**. You can then wire these nodes so they can " "communicate using **signals**." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:15 msgid "" "These are the four concepts you will learn here. We're going to look at them " "briefly to give you a sense of how the engine works. In the getting started " "series, you will get to use them in practice." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:20 #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:40 #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:49 msgid "Scenes" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:22 msgid "" "In Godot, you break down your game in reusable scenes. A scene can be a " "character, a weapon, a menu in the user interface, a single house, an entire " "level, or anything you can think of. Godot's scenes are flexible; they fill " "the role of both prefabs and scenes in some other game engines." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:29 msgid "" "You can also nest scenes. For example, you can put your character in a " "level, and drag and drop a scene as a child of it." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:35 #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:14 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:33 #: ../../docs/tutorials/scripting/gdscript/gdscript_exports.rst:197 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:245 #: ../../docs/contributing/development/file_formats/tscn.rst:47 msgid "Nodes" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:37 msgid "" "A scene is composed of one or more **nodes**. Nodes are your game's smallest " "building blocks that you arrange into trees. Here's an example of a " "character's nodes." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:43 msgid "" "It is made of a ``CharacterBody2D`` node named \"Player\", a ``Camera2D``, a " "``Sprite2D``, and a ``CollisionShape2D``." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:46 msgid "" "The node names end with \"2D\" because this is a 2D scene. Their 3D " "counterparts have names that end with \"3D\". Be aware that \"Spatial\" " "Nodes are now called \"Node3D\" starting with Godot 4." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:50 msgid "" "Notice how nodes and scenes look the same in the editor. When you save a " "tree of nodes as a scene, it then shows as a single node, with its internal " "structure hidden in the editor." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:54 msgid "" "Godot provides an extensive library of base node types you can combine and " "extend to build more powerful ones. 2D, 3D, or user interface, you will do " "most things with these nodes." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:61 #: ../../docs/contributing/development/file_formats/tscn.rst:99 msgid "The scene tree" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:63 msgid "" "All your game's scenes come together in the **scene tree**, literally a tree " "of scenes. And as scenes are trees of nodes, the scene tree also is a tree " "of nodes. But it's easier to think of your game in terms of scenes as they " "can represent characters, weapons, doors, or your user interface." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:73 #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:2202 #: ../../docs/tutorials/scripting/gdscript/gdscript_styleguide.rst:676 #: ../../docs/tutorials/scripting/gdextension/gdextension_cpp_example.rst:589 #: ../../docs/tutorials/scripting/how_to_read_the_godot_api.rst:103 #: ../../docs/contributing/development/core_and_modules/object_class.rst:223 msgid "Signals" msgstr "Signali" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:75 msgid "" "Nodes emit signals when some event occurs. This feature allows you to make " "nodes communicate without hard-wiring them in code. It gives you a lot of " "flexibility in how you structure your scenes." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:81 msgid "" "Signals are Godot's version of the *observer* pattern. You can read more " "about it here: https://gameprogrammingpatterns.com/observer.html" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:85 msgid "" "For example, buttons emit a signal when pressed. You can connect to this " "signal to run code in reaction to this event, like starting the game or " "opening a menu." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:88 msgid "" "Other built-in signals can tell you when two objects collided, when a " "character or monster entered a given area, and much more. You can also " "define new signals tailored to your game." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:93 #: ../../docs/getting_started/step_by_step/instancing.rst:212 #: ../../docs/getting_started/step_by_step/scripting_languages.rst:154 #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:180 #: ../../docs/getting_started/step_by_step/signals.rst:521 #: ../../docs/tutorials/2d/2d_sprite_animation.rst:279 #: ../../docs/tutorials/2d/2d_movement.rst:286 #: ../../docs/tutorials/3d/global_illumination/introduction_to_global_illumination.rst:327 #: ../../docs/tutorials/export/exporting_pcks.rst:138 #: ../../docs/tutorials/scripting/gdscript/static_typing.rst:496 msgid "Summary" msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:95 msgid "" "Nodes, scenes, the scene tree, and signals are four core concepts in Godot " "that you will manipulate all the time." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:98 msgid "" "Nodes are your game's smallest building blocks. You combine them to create " "scenes that you then combine and nest into the scene tree. You can then use " "signals to make nodes react to events in other nodes or different scene tree " "branches." msgstr "" #: ../../docs/getting_started/introduction/key_concepts_overview.rst:102 msgid "" "After this short breakdown, you probably have many questions. Bear with us " "as you will get many answers throughout the getting started series." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:10 #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:43 #, fuzzy msgid "First look at Godot's editor" msgstr "Uvod" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:12 msgid "" "This page will give you a brief overview of Godot's interface. We're going " "to look at the different main screens and docks to help you situate yourself." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:15 msgid "" "For a comprehensive breakdown of the editor's interface and how to use it, " "see the :ref:`Editor manual `." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:19 msgid "The Project Manager" msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:21 msgid "" "When you launch Godot, the first window you see is the Project Manager. In " "the default tab **Local Projects**, you can manage existing projects, import " "or create new ones, and more." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:27 msgid "" "At the top of the window, there is another tab named \"Asset Library " "Projects\". You can search for demo projects in the open source asset " "library, which includes many projects developed by the community." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:31 msgid "" "To learn the Project Manager's ins and outs, read :ref:`doc_project_manager`." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:36 msgid "" "You can also change the editor's language using the drop-down menu to the " "right of the engine's version in the window's top-right corner. By default, " "it is in English (EN)." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:45 msgid "" "When you open a new or an existing project, the editor's interface appears. " "Let's look at its main areas." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:50 msgid "" "By default, it features **menus**, **main screens**, and playtest buttons " "along the window's top edge." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:55 msgid "" "In the center is the **viewport** with its **toolbar** at the top, where " "you'll find tools to move, scale, or lock the scene's nodes." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:60 msgid "" "On either side of the viewport sit the **docks**. And at the bottom of the " "window lies the **bottom panel**." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:63 msgid "" "The toolbar changes based on the context and selected node. Here is the 2D " "toolbar." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:67 msgid "Below is the 3D one." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:71 msgid "" "Let's look at the docks. The **FileSystem** dock lists your project files, " "including scripts, images, audio samples, and more." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:76 msgid "The **Scene** dock lists the active scene's nodes." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:80 msgid "The **Inspector** allows you to edit the properties of a selected node." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:84 msgid "" "The **bottom panel**, situated below the viewport, is the host for the debug " "console, the animation editor, the audio mixer, and more. They can take " "precious space, that's why they're folded by default." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:90 msgid "" "When you click on one, it expands vertically. Below, you can see the " "animation editor opened." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:95 msgid "The four main screens" msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:97 msgid "" "There are four main screen buttons centered at the top of the editor: 2D, " "3D, Script, and AssetLib." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:100 msgid "" "You'll use the **2D screen** for all types of games. In addition to 2D " "games, the 2D screen is where you'll build your interfaces." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:105 msgid "" "In the **3D screen**, you can work with meshes, lights, and design levels " "for 3D games." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:110 msgid "" "Notice the perspective button under the toolbar. Clicking on it opens a list " "of options related to the 3D view." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:115 msgid "" "Read :ref:`doc_introduction_to_3d` for more detail about the **3D main " "screen**." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:118 msgid "" "The **Script screen** is a complete code editor with a debugger, rich auto-" "completion, and built-in code reference." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:123 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/introduction/first_look_at_the_editor.rst:128 msgid "" "You can learn more about the asset library in :ref:`doc_what_is_assetlib`." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:132 msgid "Integrated class reference" msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:134 msgid "Godot comes with a built-in class reference." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:136 msgid "" "You can search for information about a class, method, property, constant, or " "signal by any one of the following methods:" msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:139 msgid "" "Pressing :kbd:`F1` (or :kbd:`Alt + Space` on macOS, or :kbd:`fn + F1` for " "laptops with a :kbd:`fn` key) anywhere in the editor." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:140 msgid "" "Clicking the \"Search Help\" button in the top-right of the Script main " "screen." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:141 msgid "Clicking on the Help menu and Search Help." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:142 msgid "" "Clicking while pressing the :kbd:`Ctrl` key on a class name, function name, " "or built-in variable in the script editor." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:148 msgid "" "When you do any of these, a window pops up. Type to search for any item. You " "can also use it to browse available objects and methods." msgstr "" #: ../../docs/getting_started/introduction/first_look_at_the_editor.rst:153 msgid "" "Double-click on an item to open the corresponding page in the script main " "screen." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:8 #, fuzzy msgid "Learning new features" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/introduction/learning_new_features.rst:10 msgid "" "Godot is a feature-rich game engine. There is a lot to learn about it. This " "page explains how you can use the online manual, built-in code reference, " "and join online communities to learn new features and techniques." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:15 msgid "Making the most of this manual" msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:17 msgid "" "What you are reading now is the user manual. It documents each of the " "engine's concepts and available features. When learning a new topic, you can " "start by browsing the corresponding section of this website. The left menu " "allows you to explore broad topics while the search bar will help you find " "more specific pages. If a page exists for a given theme, it will often link " "to more related content." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:26 msgid "" "The manual has a companion class reference that explains each Godot class's " "available functions and properties when programming. While the manual covers " "general features, concepts, and how to use the editor, the reference is all " "about using Godot's scripting API (Application Programming Interface). You " "can access it both online and offline. We recommend browsing the reference " "offline, from within the Godot editor. To do so, go to Help -> Search Help " "or press :kbd:`F1`." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:36 msgid "" "To browse it online, head to the manual's :ref:`Class Reference " "` section." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:39 msgid "A class reference's page tells you:" msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:41 msgid "" "Where the class exists in the inheritance hierarchy. You can click the top " "links to jump to parent classes and see the properties and methods a type " "inherits." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:47 msgid "A summary of the class's role and use cases." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:49 msgid "" "An explanation of the class's properties, methods, signals, enums, and " "constants." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:52 msgid "Links to manual pages further detailing the class." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:54 msgid "" "If the manual or class reference is missing or has insufficient information, " "please open an Issue in the official `godot-docs `_ GitHub repository to report it." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:59 msgid "" "You can Ctrl-click any underlined text like the name of a class, property, " "method, signal, or constant to jump to it." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:63 msgid "Learning to think like a programmer" msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:65 msgid "" "Teaching programming foundations and how to think like a game developer is " "beyond the scope of Godot's documentation. If you're new to programming, we " "recommend two excellent free resources to get you started:" msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:69 msgid "" "Harvard university offers a free courseware to learn to program, `CS50 " "`_. It will teach you programming fundamentals, " "how code works, and how to think like a programmer. These skills are " "essential to become a game developer and learn any game engine efficiently. " "You can see this course as an investment that will save you time and trouble " "when you learn to create games." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:76 msgid "" "If you prefer books, check out the free ebook `Automate The Boring Stuff " "With Python `_ by Al Sweigart." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:80 msgid "Learning with the community" msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:82 msgid "" "Godot has a growing community of users. If you're stuck on a problem or need " "help to better understand how to achieve something, you can ask other users " "for help on one of the many `active communities `_." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:87 msgid "" "The best place to ask questions and find already answered ones is the " "official `Questions & Answers `_ site. These " "responses show up in search engine results and get saved, allowing other " "users to benefit from discussions on the platform. Once you have asked a " "question there, you can share its link on other social platforms. Before " "asking a question, be sure to look for existing answers that might solve " "your problem on this website or using your preferred search engine." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:95 msgid "" "Asking questions well and providing details will help others answer you " "faster and better. When asking questions, we recommend including the " "following information:" msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:99 msgid "" "**Describe your goal**. You want to explain what you are trying to achieve " "design-wise. If you are having trouble figuring out how to make a solution " "work, there may be a different, easier solution that accomplishes the same " "goal." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:104 msgid "" "If there is an error involved, **share the exact error message**. You can " "copy the exact error message in the editor's Debugger bottom panel by " "clicking the Copy Error icon. Knowing what it says can help community " "members better identify how you triggered the error." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:109 msgid "" "If there is code involved, **share a code sample**. Other users won't be " "able to help you fix a problem without seeing your code. Share the code as " "text directly. To do so, you can copy and paste a short code snippet in a " "chat box, or use a website like `Pastebin `_ to share " "long files." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:115 msgid "" "**Share a screenshot** of your *Scene* dock along with your written code. " "Most of the code you write affects nodes in your scenes. As a result, you " "should think of those scenes as part of your source code." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:121 msgid "" "Also, please don't take a picture with your phone, the low quality and " "screen reflections can make it hard to understand the image. Your operating " "system should have a built-in tool to take screenshots with the :kbd:`PrtSc` " "(Print Screen) key." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:126 msgid "" "Alternatively, you can use a program like `ShareX `_ " "on Windows or `FlameShot `_ on Linux." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:129 msgid "" "Sharing a video of your running game can also be really **useful to " "troubleshoot your game**. You can use programs like `OBS Studio `_ and `Screen to GIF `_ to " "capture your screen." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:134 msgid "" "You can then use a service like `streamable `_ or a " "cloud provider to upload and share your videos for free." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:137 msgid "" "If you're not using the stable version of Godot, please mention the version " "you're using. The answer can be different as available features and the " "interface evolve rapidly." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:141 msgid "" "Following these guidelines will maximize your chances of getting the answer " "you're looking for. They will save time both for you and the persons helping " "you." msgstr "" #: ../../docs/getting_started/introduction/learning_new_features.rst:145 #, fuzzy msgid "Community tutorials" msgstr "Zajednica" #: ../../docs/getting_started/introduction/learning_new_features.rst:147 msgid "" "This manual aims to provide a comprehensive reference of Godot's features. " "Aside from the 2D and 3D getting started series, it does not contain " "tutorials to implement specific game genres. If you're looking for a " "tutorial about creating a role-playing game, a platformer, or other, please " "see :ref:`doc_community_tutorials`, which lists content made by the Godot " "community." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:4 msgid "Godot's design philosophy" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:6 msgid "Now that you've gotten your feet wet, let's talk about Godot's design." msgstr "" #: ../../docs/getting_started/introduction/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/introduction/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/introduction/godot_design_philosophy.rst:19 msgid "" "Please watch `Godot explained in 5 minutes `_ if you're looking for an overview of the engine's features." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:24 msgid "Object-oriented design and composition" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:26 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/introduction/godot_design_philosophy.rst:30 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/introduction/godot_design_philosophy.rst:37 msgid "On top of that, you can **inherit** from any scene." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:39 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/introduction/godot_design_philosophy.rst:44 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/introduction/godot_design_philosophy.rst:50 #: ../../docs/getting_started/first_2d_game/index.rst:10 #: ../../docs/getting_started/first_3d_game/index.rst:12 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:18 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:15 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:24 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:11 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:42 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:24 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:12 #: ../../docs/community/asset_library/using_assetlib.rst:16 #: ../../docs/community/asset_library/submitting_to_assetlib.rst:128 msgid "|image0|" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:176 #: ../../docs/getting_started/first_2d_game/index.rst:77 #: ../../docs/getting_started/first_3d_game/index.rst:72 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:166 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:438 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:336 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:334 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:368 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:526 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:608 #: ../../docs/community/asset_library/using_assetlib.rst:187 #: ../../docs/community/asset_library/submitting_to_assetlib.rst:220 msgid "image0" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:52 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 " "some nodes like collision shapes that a parent physics body will use, most " "nodes work independently from one another." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:58 msgid "" "In other words, Godot's nodes do not work like components in some other game " "engines." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:61 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:47 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:350 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:29 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:21 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:49 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:28 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:20 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:26 #: ../../docs/community/asset_library/using_assetlib.rst:48 msgid "|image1|" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:177 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:167 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:439 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:337 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:335 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:369 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:527 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:451 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:609 #: ../../docs/community/asset_library/using_assetlib.rst:188 msgid "image1" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:63 msgid "" "Sprite2D 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/introduction/godot_design_philosophy.rst:68 msgid "All-inclusive package" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:70 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/introduction/godot_design_philosophy.rst:75 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:52 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:358 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:33 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:26 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:60 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:36 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:24 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:34 #: ../../docs/community/asset_library/using_assetlib.rst:58 msgid "|image2|" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:178 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:168 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:440 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:338 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:336 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:370 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:528 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:452 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:610 #: ../../docs/community/asset_library/using_assetlib.rst:189 msgid "image2" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:77 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 available in Godot for it. Or you can create one, like the " "`Tiled Map Importer `__." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:82 msgid "" "That is also partly why Godot offers its own programming language GDScript " "along with C#. GDScript is designed for the needs of game developers and " "game designers, and is tightly integrated in the engine and the editor." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:87 msgid "" "GDScript lets you write code using an indentation-based 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/introduction/godot_design_philosophy.rst:91 msgid "" "Note that with GDExtension, you can write high-performance code using " "compiled languages like C, C++, Rust, D, Haxe, or Swift without recompiling " "the engine." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:94 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/introduction/godot_design_philosophy.rst:99 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:77 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:375 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:49 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:52 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:75 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:56 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:38 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:43 #: ../../docs/community/asset_library/using_assetlib.rst:86 msgid "|image4|" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:179 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:170 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:442 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:339 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:338 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:372 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:530 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:454 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:612 #: ../../docs/community/asset_library/using_assetlib.rst:191 msgid "image4" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:101 msgid "" "*A State Machine editor plugin in Godot 2 by kubecz3k. It lets you manage " "states and transitions visually.*" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:105 msgid "Open source" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:107 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/introduction/godot_design_philosophy.rst:112 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/introduction/godot_design_philosophy.rst:117 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/introduction/godot_design_philosophy.rst:123 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/introduction/godot_design_philosophy.rst:127 msgid "Community-driven" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:129 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/introduction/godot_design_philosophy.rst:134 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/introduction/godot_design_philosophy.rst:141 msgid "The Godot editor is a Godot game" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:143 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/introduction/godot_design_philosophy.rst:148 msgid "" "This leads to a reliable and flexible UI system, as it powers the editor " "itself. With the ``@tool`` annotation, you can run any game code in the " "editor." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:151 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:82 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:386 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:85 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:56 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:84 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:134 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:50 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:51 #: ../../docs/community/asset_library/using_assetlib.rst:90 msgid "|image5|" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:180 #: ../../docs/getting_started/first_3d_game/02.player_input.rst:171 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:443 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:340 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:339 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:373 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:531 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:455 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:613 #: ../../docs/community/asset_library/using_assetlib.rst:192 msgid "image5" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:153 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/introduction/godot_design_philosophy.rst:157 msgid "" "Put the ``@tool`` annotation 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/introduction/godot_design_philosophy.rst:164 msgid "" "The editor is fully written in C++ and is statically compiled into the " "binary. This means you can't import it as a typical project that would have " "a ``project.godot`` file." msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:169 msgid "Separate 2D and 3D engines" msgstr "" #: ../../docs/getting_started/introduction/godot_design_philosophy.rst:171 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/index.rst:6 msgid "" "This series builds upon the :ref:`Introduction to Godot ` and will get you started with the editor and the engine. You " "will learn more about nodes and scenes, code your first classes with " "GDScript, use signals to make nodes communicate with one another, and more." msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:11 msgid "" "The following lessons are here to prepare you for :ref:" "`doc_your_first_2d_game`, a step-by-step tutorial where you will code a game " "from scratch. By the end of it, you will have the necessary foundations to " "explore more features in other sections. We also included links to pages " "that cover a given topic in-depth where appropriate." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:7 msgid "Nodes and Scenes" msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:9 msgid "" "In :ref:`doc_key_concepts_overview`, we saw that a Godot game is a tree of " "scenes and that each scene is a tree of nodes. In this lesson, we explain a " "bit more about them. You will also create your first scene." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:16 msgid "" "**Nodes are the fundamental building blocks of your game**. They are like " "the ingredients in a recipe. There are dozens of kinds that can display an " "image, play a sound, represent a camera, and much more." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:22 #, fuzzy msgid "All nodes have the following characteristics:" msgstr "Glavna dokumentacija za sajt je podeljena na sledeća poglavlja:" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:24 msgid "A name." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:25 msgid "Editable properties." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:26 msgid "They receive callbacks to update every frame." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:27 msgid "You can extend them with new properties and functions." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:28 msgid "You can add them to another node as a child." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:30 msgid "" "The last characteristic is important. **Together, nodes form a tree**, which " "is a powerful feature to organize projects. Since different nodes have " "different functions, combining them produces more complex behavior. As we " "saw before, you can build a playable character the camera follows using a :" "ref:`CharacterBody2D ` node, a :ref:`Sprite2D " "` node, a :ref:`Camera2D ` node, and a :ref:" "`CollisionShape2D ` node." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:42 msgid "" "When you organize nodes in a tree, like our character, we call this " "construct a scene. Once saved, scenes work like new node types in the " "editor, where you can add them as a child of an existing node. In that case, " "the instance of the scene appears as a single node with its internals hidden." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:47 msgid "" "Scenes allow you to structure your game's code however you want. You can " "**compose nodes** to create custom and complex node types, like a game " "character that runs and jumps, a life bar, a chest with which you can " "interact, and more." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:53 msgid "" "The Godot editor essentially is a **scene editor**. It has plenty of tools " "for editing 2D and 3D scenes, as well as user interfaces. A Godot project " "can contain as many of these scenes as you need. The engine only requires " "one as your application's **main scene**. This is the scene Godot will first " "load when you or a player runs the game." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:59 #, fuzzy msgid "On top of acting like nodes, scenes have the following characteristics:" msgstr "Glavna dokumentacija za sajt je podeljena na sledeća poglavlja:" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:61 msgid "They always have one root node, like the \"Player\" in our example." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:62 msgid "You can save them to your local drive and load them later." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:63 msgid "" "You can create as many instances of a scene as you'd like. You could have " "five or ten characters in your game, created from your Character scene." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:67 #, fuzzy msgid "Creating your first scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:69 msgid "" "Let's create our first scene with a single node. To do so, you will need to :" "ref:`create a new project ` first. " "After opening the project, you should see an empty editor." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:75 msgid "" "In an empty scene, the Scene dock on the left shows several options to add a " "root node quickly. \"2D Scene\" adds a :ref:`Node2D ` node, " "\"3D Scene\" adds a :ref:`Node3D ` node, and \"User " "Interface\" adds a :ref:`Control ` node. These presets are " "here for convenience; they are not mandatory. \"Other Node\" lets you select " "any node to be the root node. In an empty scene, \"Other Node\" is " "equivalent to pressing the \"Add Child Node\" button at the top-left of the " "Scene dock, which usually adds a new node as a child of the currently " "selected node." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:85 msgid "" "We're going to add a single :ref:`Label ` node to our scene. " "Its function is to draw text on the screen." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:88 msgid "" "Press the \"Add Child Node\" button or \"Other Node\" to create a root node." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:92 msgid "The Create Node dialog opens, showing the long list of available nodes." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:96 msgid "Select the Label node. You can type its name to filter down the list." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:100 msgid "" "Click on the Label node to select it and click the Create button at the " "bottom of the window." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:105 msgid "" "A lot happens when you add a scene's first node. The scene changes to the 2D " "workspace because Label is a 2D node type. The Label appears, selected, in " "the top-left corner of the viewport. The node appears in the Scene dock on " "the left, and the node's properties appear in the Inspector dock on the " "right." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:111 #, fuzzy msgid "Changing a node's properties" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:113 msgid "" "The next step is to change the Label's \"Text\" property. Let's change it to " "\"Hello World\"." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:116 msgid "" "Head to the Inspector dock on the right of the viewport. Click inside the " "field below the Text property and type \"Hello World\"." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:121 msgid "You will see the text draw in the viewport as you type." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:123 msgid "" "You can edit any property listed in the Inspector as we did with the Text. " "For a complete reference of the Inspector dock, see :ref:" "`doc_editor_inspector_dock`." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:127 msgid "" "You can move your Label node in the viewport by selecting the move tool in " "the toolbar." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:132 msgid "" "With the Label selected, click and drag anywhere in the viewport to move it " "to the center of the view delimited by the rectangle." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:138 #, fuzzy msgid "Running the scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:140 msgid "" "Everything's ready to run the scene! Press the Play Scene button in the top-" "right of the screen or press :kbd:`F6` (:kbd:`Cmd + R` on macOS)." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:145 msgid "" "A popup invites you to save the scene, which is required to run it. Click " "the Save button in the file browser to save it as ``label.tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:150 msgid "" "The Save Scene As dialog, like other file dialogs in the editor, only allows " "you to save files inside the project. The ``res://`` path at the top of the " "window represents the project's root directory and stands for \"resource " "path\". For more information about file paths in Godot, see :ref:" "`doc_filesystem`." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:156 msgid "" "The application should open in a new window and display the text \"Hello " "World\"." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:160 msgid "" "Close the window or press :kbd:`F8` (:kbd:`Cmd + .` on macOS) to quit the " "running scene." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:163 #, fuzzy msgid "Setting the main scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:165 msgid "" "To run our test scene, we used the Play Scene button. Another button next to " "it allows you to set and run the project's main scene. You can press :kbd:" "`F5` (:kbd:`Cmd + B` on macOS) to do so." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:171 msgid "A popup window appears and invites you to select the main scene." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:175 msgid "" "Click the Select button, and in the file dialog that appears, double click " "on ``label.tscn``." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:180 msgid "" "The demo should run again. Moving forward, every time you run the project, " "Godot will use this scene as a starting point." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:183 msgid "" "The editor saves the main scene's path in a project.godot file in your " "project's directory. While you can edit this text file directly to change " "project settings, you can also use the \"Project -> Project Settings\" " "window to do so. For more information, see :ref:`doc_project_settings`." msgstr "" #: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:189 msgid "" "In the next part, we will discuss another key concept in games and in Godot: " "creating instances of a scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:4 #, fuzzy msgid "Creating instances" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/instancing.rst:6 msgid "" "In the previous part, we saw that a scene is a collection of nodes organized " "in a tree structure, with a single node as its root. You can split your " "project into any number of scenes. This feature helps you break down and " "organize your game's different components." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:11 msgid "" "You can create as many scenes as you'd like and save them as files with the " "``.tscn`` extension, which stands for \"text scene\". The ``label.tscn`` " "file from the previous lesson was an example. We call those files \"Packed " "Scenes\" as they pack information about your scene's content." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:16 msgid "" "Here's an example of a ball. It's composed of a :ref:`RigidBody2D " "` node as its root named Ball, which allows the ball to " "fall and bounce on walls, a :ref:`Sprite2D ` node, and a :" "ref:`CollisionShape2D `." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:23 msgid "" "Once you have saved a scene, it works as a blueprint: you can reproduce it " "in other scenes as many times as you'd like. Replicating an object from a " "template like this is called **instancing**." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:29 msgid "" "As we mentioned in the previous part, instanced scenes behave like a node: " "the editor hides their content by default. When you instance the Ball, you " "only see the Ball node. Notice also how each duplicate has a unique name." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:33 msgid "" "Every instance of the Ball scene starts with the same structure and " "properties as ``ball.tscn``. However, you can modify each independently, " "such as changing how they bounce, how heavy they are, or any property " "exposed by the source scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:39 msgid "In practice" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:41 msgid "" "Let's use instancing in practice to see how it works in Godot. We invite you " "to download the ball's sample project we prepared for you: " "`instancing_starter.zip `_." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:45 msgid "" "Extract the archive on your computer. To import it, you need the Project " "Manager. The Project Manager is accessed by opening Godot, or if you already " "have Godot opened, click on *Project -> Quit to Project List* (:kbd:`Ctrl + " "Shift + Q`, :kbd:`Ctrl + Option + Cmd + Q` on macOS)" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:48 msgid "" "In the Project Manager, click the *Import* button to import the project." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:52 msgid "" "In the pop-up that appears navigate to the folder you extracted. Double-" "click the ``project.godot`` file to open it." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:57 msgid "Finally, click the Import & Edit button." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:61 msgid "" "The project contains two packed scenes: ``main.tscn``, containing walls " "against which the ball collides, and ``ball.tscn``. The Main scene should " "open automatically. If you're seeing an empty 3D scene instead of the main " "scene, click the 2D button at the top of the screen." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:69 msgid "" "Let's add a ball as a child of the Main node. In the Scene dock, select the " "Main node. Then, click the link icon at the top of the scene dock. This " "button allows you to add an instance of a scene as a child of the currently " "selected node." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:75 msgid "Double-click the ball scene to instance it." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:79 msgid "The ball appears in the top-left corner of the viewport." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:83 msgid "Click on it and drag it towards the center of the view." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:87 msgid "" "Play the game by pressing :kbd:`F5` (:kbd:`Cmd + B` on macOS). You should " "see it fall." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:89 msgid "" "Now, we want to create more instances of the Ball node. With the ball still " "selected, press :kbd:`Ctrl + D` (:kbd:`Cmd + D` on macOS) to call the " "duplicate command. Click and drag to move the new ball to a different " "location." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:95 msgid "You can repeat this process until you have several in the scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:99 msgid "" "Play the game again. You should now see every ball fall independently from " "one another. This is what instances do. Each is an independent reproduction " "of a template scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:104 msgid "Editing scenes and instances" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:106 msgid "There is more to instances. With this feature, you can:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:108 msgid "" "Change the properties of one ball without affecting the others using the " "Inspector." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:110 msgid "" "Change the default properties of every Ball by opening the ``ball.tscn`` " "scene and making a change to the Ball node there. Upon saving, all instances " "of the Ball in the project will see their values update." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:114 msgid "" "Changing a property on an instance always overrides values from the " "corresponding packed scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:117 msgid "" "Let's try this. Open ``ball.tscn`` and select the Ball node. In the " "Inspector on the right, click on the PhysicsMaterial property to expand it." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:122 msgid "" "Set its Bounce property to ``0.5`` by clicking on the number field, typing " "``0.5``, and pressing :kbd:`Enter`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:127 msgid "" "Play the game by pressing :kbd:`F5` (:kbd:`Cmd + B` on macOS) and notice how " "all balls now bounce a lot more. As the Ball scene is a template for all " "instances, modifying it and saving causes all instances to update " "accordingly." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:131 msgid "" "Let's now adjust an individual instance. Head back to the Main scene by " "clicking on the corresponding tab above the viewport." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:136 msgid "" "Select one of the instanced Ball nodes and, in the Inspector, set its " "Gravity Scale value to ``10``." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:141 msgid "A grey \"revert\" button appears next to the adjusted property." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:145 msgid "" "This icon indicates you are overriding a value from the source packed scene. " "Even if you modify the property in the original scene, the value override " "will be preserved in the instance. Clicking the revert icon will restore the " "property to the value in the saved scene." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:150 msgid "" "Rerun the game and notice how this ball now falls much faster than the " "others." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:152 msgid "" "You may notice you are unable to change the values of the " "``PhysicsMaterial`` of the ball. This is because ``PhysicsMaterial`` is a " "resource, and needs to be made unique before you can edit it in a scene that " "is linking to its original scene. To make a resource unique for one " "instance, right-click on it in the Inspector and click Make Unique in the " "contextual menu." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:158 msgid "" "Resources are another essential building block of Godot games we will cover " "in a later lesson." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:162 msgid "Scene instances as a design language" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:164 msgid "" "Instances and scenes in Godot offer an excellent design language, setting " "the engine apart from others out there. We designed Godot around this " "concept from the ground up." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:168 msgid "" "We recommend dismissing architectural code patterns when making games with " "Godot, such as Model-View-Controller (MVC) or Entity-Relationship diagrams. " "Instead, you can start by imagining the elements players will see in your " "game and structure your code around them." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:173 msgid "For example, you could break down a shooter game like so:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:177 msgid "" "You can come up with a diagram like this for almost any type of game. Each " "rectangle represents an entity that's visible in the game from the player's " "perspective. The arrows tell you which scene owns which." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:181 msgid "" "Once you have a diagram, we recommend creating a scene for each element " "listed in it to develop your game. You'll use instancing, either by code or " "directly in the editor, to build your tree of scenes." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:185 msgid "" "Programmers tend to spend a lot of time designing abstract architectures and " "trying to fit components into it. Designing based on scenes makes " "development faster and more straightforward, allowing you to focus on the " "game logic itself. Because most game components map directly to a scene, " "using a design based on scene instantiation means you need little other " "architectural code." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:191 msgid "" "Here's the example of a scene diagram for an open-world game with tons of " "assets and nested elements:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:196 msgid "" "Imagine we started by creating the room. We could make a couple of different " "room scenes, with unique arrangements of furniture in them. Later, we could " "make a house scene that uses multiple room instances for the interior. We " "would create a citadel out of many instanced houses and a large terrain on " "which we would place the citadel. Each of these would be a scene instancing " "one or more sub-scenes." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:202 msgid "" "Later, we could create scenes representing guards and add them to the " "citadel. They would be indirectly added to the overall game world." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:205 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instantiate more scenes. We designed the editor to be " "accessible to programmers, designers, and artists alike. A typical team " "development process can involve 2D or 3D artists, level designers, game " "designers, and animators, all working with the Godot editor." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:214 msgid "" "Instancing, the process of producing an object from a blueprint, has many " "handy uses. With scenes, it gives you:" msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:217 msgid "The ability to divide your game into reusable components." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:218 msgid "A tool to structure and encapsulate complex systems." msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:219 msgid "" "A language to think about your game project's structure in a natural way." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:9 msgid "Scripting languages" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:11 msgid "" "This lesson will give you an overview of the available scripting languages " "in Godot. You will learn the pros and cons of each option. In the next part, " "you will write your first script using GDScript." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:15 msgid "" "**Scripts attach to a node and extend its behavior**. This means that " "scripts inherit all functions and properties of the node they attach to." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:18 msgid "" "For example, take a game where a Camera2D node follows a ship. The Camera2D " "node follows its parent by default. Imagine you want the camera to shake " "when the player takes damage. As this feature is not built into Godot, you " "would attach a script to the Camera2D node and code the shake." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:26 msgid "Available scripting languages" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:28 msgid "" "Godot offers **four gameplay programming languages**: GDScript, C#, and, via " "its GDExtension technology, C and C++. There are more community-supported " "languages, but these are the official ones." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:32 msgid "" "You can use multiple languages in a single project. For instance, in a team, " "you could code gameplay logic in GDScript as it's fast to write, and use C# " "or C++ to implement complex algorithms and maximize their performance. Or " "you can write everything in GDScript or C#. It's your call." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:37 msgid "" "We provide this flexibility to answer the needs of different game projects " "and developers." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:41 msgid "Which language should I use?" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:43 msgid "" "If you're a beginner, we recommend to **start with GDScript**. We made this " "language specifically for Godot and the needs of game developers. It has a " "lightweight and straightforward syntax and provides the tightest integration " "with Godot." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:50 msgid "" "For C#, you will need an external code editor like `VSCode `_ or Visual Studio. While C# support is now mature, you " "will find fewer learning resources for it compared to GDScript. That's why " "we recommend C# mainly to users who already have experience with the " "language." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:56 msgid "Let's look at each language's features, as well as its pros and cons." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:61 msgid "" ":ref:`GDScript` is an `object-oriented `_ and `imperative `_ programming language built for " "Godot. It's made by and for game developers to save you time coding games. " "Its features include:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:67 msgid "A simple syntax that leads to short files." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:68 msgid "Blazing fast compilation and loading times." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:69 msgid "" "Tight editor integration, with code completion for nodes, signals, and more " "information from the scene it's attached to." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:71 msgid "" "Built-in vector and transform types, making it efficient for heavy use of " "linear algebra, a must for games." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:73 msgid "Supports multiple threads as efficiently as statically typed languages." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:74 msgid "" "No `garbage collection `_, as this feature eventually gets in " "the way when creating games. The engine counts references and manages the " "memory for you in most cases by default, but you can also control memory if " "you need to." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:79 msgid "" "`Gradual typing `_. Variables " "have dynamic types by default, but you also can use type hints for strong " "type checks." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:83 msgid "" "GDScript looks like Python as you structure your code blocks using " "indentations, but it doesn't work the same way in practice. It's inspired by " "multiple languages, including Squirrel, Lua, and Python." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:89 msgid "Why don't we use Python or Lua directly?" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:91 msgid "" "Years ago, Godot used Python, then Lua. Both languages' integration took a " "lot of work and had severe limitations. For example, threading support was a " "big challenge with Python." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:95 msgid "" "Developing a dedicated language doesn't take us more work and we can tailor " "it to game developers' needs. We're now working on performance optimizations " "and features that would've been difficult to offer with third-party " "languages." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:101 msgid ".NET / C#" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:103 msgid "" "As Microsoft's `C# `_ is a favorite amongst game developers, we " "officially support it. C# is a mature and flexible language with tons of " "libraries written for it. We were able to add support for it thanks to a " "generous donation from Microsoft." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:111 msgid "" "C# offers a good tradeoff between performance and ease of use, although you " "should be aware of its garbage collector." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:114 msgid "" "You must use the .NET edition of the Godot editor to script in C#. You can " "download it on the Godot website's `download `_ page." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:118 msgid "" "Since Godot uses .NET 6, in theory, you can use any third-party .NET library " "or framework in Godot, as well as any Common Language Infrastructure-" "compliant programming language, such as F#, Boo, or ClojureCLR. However, C# " "is the only officially supported .NET option." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:123 msgid "" "GDScript code itself doesn't execute as fast as compiled C# or C++. However, " "most script code calls functions written with fast algorithms in C++ code " "inside the engine. In many cases, writing gameplay logic in GDScript, C#, or " "C++ won't have a significant impact on performance." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:137 msgid "C++ via GDExtension" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:139 msgid "" "GDExtension allows you to write game code in C++ without needing to " "recompile Godot." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:144 msgid "" "You can use any version of the language or mix compiler brands and versions " "for the generated shared libraries, thanks to our use of an internal C API " "Bridge." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:147 msgid "" "GDExtension is the best choice for performance. You don't need to use it " "throughout an entire game, as you can write other parts in GDScript or C#." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:150 msgid "" "When working with GDExtension, the available types, functions, and " "properties closely resemble Godot's actual C++ API." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:156 msgid "" "Scripts are files containing code that you attach to a node to extend its " "functionality." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:159 msgid "" "Godot supports four official scripting languages, offering you flexibility " "between performance and ease of use." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_languages.rst:162 msgid "" "You can mix languages, for instance, to implement demanding algorithms with " "C or C++ and write most of the game logic with GDScript or C#." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:19 #, fuzzy msgid "Creating your first script" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:21 msgid "" "In this lesson, you will code your first script to make the Godot icon turn " "in circles using GDScript. As we mentioned :ref:`in the introduction `, we assume you have programming foundations. The " "equivalent C# code has been included in another tab for convenience." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:28 msgid "" "To learn more about GDScript, its keywords, and its syntax, head to the :ref:" "`GDScript reference`." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:31 msgid "" "To learn more about C#, head to the :ref:`C# basics ` page." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:34 msgid "Project setup" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:36 msgid "" "Please :ref:`create a new project ` to " "start with a clean slate. Your project should contain one picture: the Godot " "icon, which we often use for prototyping in the community." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:42 msgid "" "We need to create a Sprite2D node to display it in the game. In the Scene " "dock, click the Other Node button." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:47 msgid "" "Type \"Sprite2D\" in the search bar to filter nodes and double-click on " "Sprite2D to create the node." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:52 msgid "Your Scene tab should now only have a Sprite2D node." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:56 msgid "" "A Sprite2D node needs a texture to display. In the Inspector on the right, " "you can see that the Texture property says \"[empty]\". To display the Godot " "icon, click and drag the file ``icon.svg`` from the FileSystem dock onto the " "Texture slot." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:65 msgid "" "You can create Sprite2D nodes automatically by dragging and dropping images " "on the viewport." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:68 msgid "" "Then, click and drag the icon in the viewport to center it in the game view." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:73 #, fuzzy msgid "Creating a new script" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:75 msgid "" "To create and attach a new script to our node, right-click on Sprite2D in " "the scene dock and select \"Attach Script\"." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:80 msgid "" "The Attach Node Script window appears. It allows you to select the script's " "language and file path, among other options." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:83 msgid "" "Change the Template field from \"Node: Default\" to \"Object: Empty\" to " "start with a clean file. Leave the other options set to their default values " "and click the Create button to create the script." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:90 msgid "" "C# script names need to match their class name. In this case, you should " "name the file ``MySprite2D.cs``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:93 msgid "" "The Script workspace should appear with your new ``sprite_2d.gd`` file open " "and the following line of code:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:109 msgid "" "Every GDScript file is implicitly a class. The ``extends`` keyword defines " "the class this script inherits or extends. In this case, it's ``Sprite2D``, " "meaning our script will get access to all the properties and functions of " "the Sprite2D node, including classes it extends, like ``Node2D``, " "``CanvasItem``, and ``Node``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:115 msgid "" "In GDScript, if you omit the line with the ``extends`` keyword, your class " "will implicitly extend :ref:`RefCounted `, which Godot " "uses to manage your application's memory." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:119 msgid "" "Inherited properties include the ones you can see in the Inspector dock, " "like our node's ``texture``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:124 msgid "" "By default, the Inspector displays a node's properties in \"Title Case\", " "with capitalized words separated by a space. In GDScript code, these " "properties are in \"snake_case\", which is lowercase with words separated by " "an underscore." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:128 msgid "" "You can hover over any property's name in the Inspector to see a description " "and its identifier in code." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:132 msgid "Hello, world!" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:134 msgid "" "Our script currently doesn't do anything. Let's make it print the text " "\"Hello, world!\" to the Output bottom panel to get started." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:137 msgid "Add the following code to your script:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:153 msgid "" "Let's break it down. The ``func`` keyword defines a new function named " "``_init``. This is a special name for our class's constructor. The engine " "calls ``_init()`` on every object or node upon creating it in memory, if you " "define this function." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:158 msgid "" "GDScript is an indent-based language. The tab at the start of the line that " "says ``print()`` is necessary for the code to work. If you omit it or don't " "indent a line correctly, the editor will highlight it in red and display the " "following error message: \"Indented block expected\"." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:163 msgid "" "Save the scene as ``sprite_2d.tscn`` if you haven't already, then press :kbd:" "`F6` (:kbd:`Cmd + R` on macOS) to run it. Look at the **Output** bottom " "panel that expands. It should display \"Hello, world!\"." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:169 msgid "" "Delete the ``_init()`` function, so you're only left with the line ``extends " "Sprite2D``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:173 msgid "Turning around" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:175 msgid "" "It's time to make our node move and rotate. To do so, we're going to add two " "member variables to our script: the movement speed in pixels per second and " "the angular speed in radians per second. Add the following after the " "``extends Sprite2D`` line." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:190 msgid "" "Member variables sit near the top of the script, after any \"extends\" " "lines, but before functions. Every node instance with this script attached " "to it will have its own copy of the ``speed`` and ``angular_speed`` " "properties." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:195 msgid "" "Angles in Godot work in radians by default, but you have built-in functions " "and properties available if you prefer to calculate angles in degrees " "instead." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:199 msgid "" "To move our icon, we need to update its position and rotation every frame in " "the game loop. We can use the ``_process()`` virtual function of the " "``Node`` class. If you define it in any class that extends the Node class, " "like Sprite2D, Godot will call the function every frame and pass it an " "argument named ``delta``, the time elapsed since the last frame." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:207 msgid "" "Games work by rendering many images per second, each called a frame, and " "they do so in a loop. We measure the rate at which a game produces images in " "Frames Per Second (FPS). Most games aim for 60 FPS, although you might find " "figures like 30 FPS on slower mobile devices or 90 to 240 for virtual " "reality games." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:213 msgid "" "The engine and game developers do their best to update the game world and " "render images at a constant time interval, but there are always small " "variations in frame render times. That's why the engine provides us with " "this delta time value, making our motion independent of our framerate." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:218 msgid "At the bottom of the script, define the function:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:233 msgid "" "The ``func`` keyword defines a new function. After it, we have to write the " "function's name and arguments it takes in parentheses. A colon ends the " "definition, and the indented blocks that follow are the function's content " "or instructions." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:238 msgid "" "Notice how ``_process()``, like ``_init()``, starts with a leading " "underscore. By convention, Godot's virtual functions, that is to say, built-" "in functions you can override to communicate with the engine, start with an " "underscore." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:243 msgid "" "The line inside the function, ``rotation += angular_speed * delta``, " "increments our sprite's rotation every frame. Here, ``rotation`` is a " "property inherited from the class ``Node2D``, which ``Sprite2D`` extends. It " "controls the rotation of our node and works with radians." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:248 msgid "" "In the code editor, you can ctrl-click on any built-in property or function " "like ``position``, ``rotation``, or ``_process`` to open the corresponding " "documentation in a new tab." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:252 msgid "Run the scene to see the Godot icon turn in-place." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:256 msgid "" "In C#, notice how the ``delta`` argument taken by ``_Process()`` is a " "``double``. We therefore need to convert it to ``float`` when we apply it to " "the rotation." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:261 msgid "Moving forward" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:263 msgid "" "Let's now make the node move. Add the following two lines inside of the " "``_process()`` function, ensuring the new lines are indented the same way as " "the ``rotation += angular_speed * delta`` line before them." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:280 msgid "" "As we already saw, the ``var`` keyword defines a new variable. If you put it " "at the top of the script, it defines a property of the class. Inside a " "function, it defines a local variable: it only exists within the function's " "scope." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:284 msgid "" "We define a local variable named ``velocity``, a 2D vector representing both " "a direction and a speed. To make the node move forward, we start from the " "Vector2 class's constant ``Vector2.UP``, a vector pointing up, and rotate it " "by calling the Vector2 method ``rotated()``. This expression, ``Vector2.UP." "rotated(rotation)``, is a vector pointing forward relative to our icon. " "Multiplied by our ``speed`` property, it gives us a velocity we can use to " "move the node forward." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:291 msgid "" "We add ``velocity * delta`` to the node's ``position`` to move it. The " "position itself is of type :ref:`Vector2 `, a built-in type " "in Godot representing a 2D vector." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:295 msgid "Run the scene to see the Godot head run in circles." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:299 msgid "" "Moving a node like that does not take into account colliding with walls or " "the floor. In :ref:`doc_your_first_2d_game`, you will learn another approach " "to moving objects while detecting collisions." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:303 msgid "" "Our node currently moves by itself. In the next part, :ref:" "`doc_scripting_player_input`, we'll use player input to control it." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:307 #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:113 #: ../../docs/getting_started/step_by_step/signals.rst:342 #, fuzzy msgid "Complete script" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/scripting_first_script.rst:309 #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:115 msgid "Here is the complete ``sprite_2d.gd`` file for reference." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:8 msgid "Listening to player input" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:10 msgid "" "Building upon the previous lesson, :ref:`doc_scripting_first_script`, let's " "look at another important feature of any game: giving control to the player. " "To add this, we need to modify our ``sprite_2d.gd`` code." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:16 msgid "You have two main tools to process the player's input in Godot:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:18 msgid "" "The built-in input callbacks, mainly ``_unhandled_input()``. Like " "``_process()``, it's a built-in virtual function that Godot calls every time " "the player presses a key. It's the tool you want to use to react to events " "that don't happen every frame, like pressing :kbd:`Space` to jump. To learn " "more about input callbacks, see :ref:`doc_inputevent`." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:23 msgid "" "The ``Input`` singleton. A singleton is a globally accessible object. Godot " "provides access to several in scripts. It's the right tool to check for " "input every frame." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:27 msgid "" "We're going to use the ``Input`` singleton here as we need to know if the " "player wants to turn or move every frame." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:30 msgid "" "For turning, we should use a new variable: ``direction``. In our " "``_process()`` function, replace the ``rotation += angular_speed * delta`` " "line with the code below." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:59 msgid "" "Our ``direction`` local variable is a multiplier representing the direction " "in which the player wants to turn. A value of ``0`` means the player isn't " "pressing the left or the right arrow key. A value of ``1`` means the player " "wants to turn right, and ``-1`` means they want to turn left." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:64 msgid "" "To produce these values, we introduce conditions and the use of ``Input``. A " "condition starts with the ``if`` keyword in GDScript and ends with a colon. " "The condition is the expression between the keyword and the end of the line." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:68 msgid "" "To check if a key was pressed this frame, we call ``Input." "is_action_pressed()``. The method takes a text string representing an input " "action and returns ``true`` if the action is pressed, ``false`` otherwise." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:72 msgid "" "The two actions we use above, \"ui_left\" and \"ui_right\", are predefined " "in every Godot project. They respectively trigger when the player presses " "the left and right arrows on the keyboard or left and right on a gamepad's D-" "pad." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:76 msgid "" "You can see and edit input actions in your project by going to Project -> " "Project Settings and clicking on the Input Map tab." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:79 msgid "" "Finally, we use the ``direction`` as a multiplier when we update the node's " "``rotation``: ``rotation += angular_speed * direction * delta``." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:82 msgid "" "If you run the scene with this code, the icon should rotate when you press :" "kbd:`Left` and :kbd:`Right`." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:86 msgid "Moving when pressing \"up\"" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:88 msgid "" "To only move when pressing a key, we need to modify the code that calculates " "the velocity. Replace the line starting with ``var velocity`` with the code " "below." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:106 msgid "" "We initialize the ``velocity`` with a value of ``Vector2.ZERO``, another " "constant of the built-in ``Vector`` type representing a 2D vector of length " "0." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:109 msgid "" "If the player presses the \"ui_up\" action, we then update the velocity's " "value, causing the sprite to move forward." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:174 msgid "" "If you run the scene, you should now be able to rotate with the left and " "right arrow keys and move forward by pressing :kbd:`Up`." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:182 msgid "" "In summary, every script in Godot represents a class and extends one of the " "engine's built-in classes. The node types your classes inherit from give you " "access to properties, such as ``rotation`` and ``position`` in our sprite's " "case. You also inherit many functions, which we didn't get to use in this " "example." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:187 msgid "" "In GDScript, the variables you put at the top of the file are your class's " "properties, also called member variables. Besides variables, you can define " "functions, which, for the most part, will be your classes' methods." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:191 msgid "" "Godot provides several virtual functions you can define to connect your " "class with the engine. These include ``_process()``, to apply changes to the " "node every frame, and ``_unhandled_input()``, to receive input events like " "key and button presses from the users. There are quite a few more." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:196 msgid "" "The ``Input`` singleton allows you to react to the players' input anywhere " "in your code. In particular, you'll get to use it in the ``_process()`` loop." msgstr "" #: ../../docs/getting_started/step_by_step/scripting_player_input.rst:199 msgid "" "In the next lesson, :ref:`doc_signals`, we'll build upon the relationship " "between scripts and nodes by having our nodes trigger code in scripts." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:-1 #: ../../docs/tutorials/scripting/gdscript/gdscript_documentation_comments.rst:77 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_differences.rst:571 #: ../../docs/tutorials/scripting/instancing_with_signals.rst:-1 msgid "Signal" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:12 #, fuzzy msgid "Using signals" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/signals.rst:14 msgid "" "In this lesson, we will look at signals. They are messages that nodes emit " "when something specific happens to them, like a button being pressed. Other " "nodes can connect to that signal and call a function when the event occurs." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:18 msgid "" "Signals are a delegation mechanism built into Godot that allows one game " "object to react to a change in another without them referencing one another. " "Using signals limits `coupling `_ and keeps your code flexible." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:24 msgid "" "For example, you might have a life bar on the screen that represents the " "player's health. When the player takes damage or uses a healing potion, you " "want the bar to reflect the change. To do so, in Godot, you would use " "signals." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:28 msgid "" "As mentioned in the introduction, signals are Godot's version of the " "observer pattern. You can learn more about it here: https://" "gameprogrammingpatterns.com/observer.html" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:32 msgid "" "We will now use a signal to make our Godot icon from the previous lesson (:" "ref:`doc_scripting_player_input`) move and stop by pressing a button." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:38 #: ../../docs/tutorials/animation/introduction.rst:108 #: ../../docs/tutorials/physics/kinematic_character_2d.rst:77 msgid "Scene setup" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:40 msgid "" "To add a button to our game, we will create a new scene which will include " "both a :ref:`Button ` and the ``sprite_2d.tscn`` scene we " "created in the :ref:`doc_scripting_first_script` lesson." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:44 msgid "Create a new scene by going to the menu Scene -> New Scene." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:48 msgid "" "In the Scene dock, click the 2D Scene button. This will add a :ref:`Node2D " "` as our root." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:53 msgid "" "In the FileSystem dock, click and drag the ``sprite_2d.tscn`` file you saved " "previously onto the Node2D to instantiate it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:58 msgid "" "We want to add another node as a sibling of the Sprite2D. To do so, right-" "click on Node2D and select Add Child Node." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:63 msgid "Search for the :ref:`Button ` node and add it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:67 msgid "" "The node is small by default. Click and drag on the bottom-right handle of " "the Button in the viewport to resize it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:72 msgid "" "If you don't see the handles, ensure the select tool is active in the " "toolbar." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:76 msgid "Click and drag on the button itself to move it closer to the sprite." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:78 msgid "" "You can also write a label on the Button by editing its Text property in the " "Inspector. Enter ``Toggle motion``." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:83 msgid "Your scene tree and viewport should look like this." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:87 msgid "" "Save your newly created scene as ``node_2d.tscn``, if you haven't already. " "You can then run it with :kbd:`F6` (:kbd:`Cmd + R` on macOS). At the moment, " "the button will be visible, but nothing will happen if you press it." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:93 msgid "Connecting a signal in the editor" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:95 msgid "" "Here, we want to connect the Button's \"pressed\" signal to our Sprite2D, " "and we want to call a new function that will toggle its motion on and off. " "We need to have a script attached to the Sprite2D node, which we do from the " "previous lesson." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:100 msgid "" "You can connect signals in the Node dock. Select the Button node and, on the " "right side of the editor, click on the tab named \"Node\" next to the " "Inspector." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:105 msgid "The dock displays a list of signals available on the selected node." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:109 msgid "Double-click the \"pressed\" signal to open the node connection window." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:113 msgid "" "There, you can connect the signal to the Sprite2D node. The node needs a " "receiver method, a function that Godot will call when the Button emits the " "signal. The editor generates one for you. By convention, we name these " "callback methods \"_on_node_name_signal_name\". Here, it'll be " "\"_on_button_pressed\"." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:120 msgid "" "When connecting signals via the editor's Node dock, you can use two modes. " "The simple one only allows you to connect to nodes that have a script " "attached to them and creates a new callback function on them." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:126 msgid "" "The advanced view lets you connect to any node and any built-in function, " "add arguments to the callback, and set options. You can toggle the mode in " "the window's bottom-right by clicking the Advanced button." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:131 msgid "" "Click the Connect button to complete the signal connection and jump to the " "Script workspace. You should see the new method with a connection icon in " "the left margin." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:137 msgid "" "If you click the icon, a window pops up and displays information about the " "connection. This feature is only available when connecting nodes in the " "editor." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:142 msgid "" "Let's replace the line with the ``pass`` keyword with code that'll toggle " "the node's motion." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:145 msgid "" "Our Sprite2D moves thanks to code in the ``_process()`` function. Godot " "provides a method to toggle processing on and off: :ref:`Node.set_process() " "`. Another method of the Node class, " "``is_processing()``, returns ``true`` if idle processing is active. We can " "use the ``not`` keyword to invert the value." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:164 msgid "" "This function will toggle processing and, in turn, the icon's motion on and " "off upon pressing the button." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:167 msgid "" "Before trying the game, we need to simplify our ``_process()`` function to " "move the node automatically and not wait for user input. Replace it with the " "following code, which we saw two lessons ago:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:188 msgid "Your complete ``sprite_2d.gd`` code should look like the following." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:230 msgid "" "Run the scene now and click the button to see the sprite start and stop." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:233 #, fuzzy msgid "Connecting a signal via code" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/signals.rst:235 msgid "" "You can connect signals via code instead of using the editor. This is " "necessary when you create nodes or instantiate scenes inside of a script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:238 msgid "" "Let's use a different node here. Godot has a :ref:`Timer ` node " "that's useful to implement skill cooldown times, weapon reloading, and more." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:241 msgid "" "Head back to the 2D workspace. You can either click the \"2D\" text at the " "top of the window or press :kbd:`Ctrl + F1` (:kbd:`Ctrl + Cmd + 1` on macOS)." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:244 msgid "" "In the Scene dock, right-click on the Sprite2D node and add a new child " "node. Search for Timer and add the corresponding node. Your scene should now " "look like this." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:250 msgid "" "With the Timer node selected, go to the Inspector and enable the " "**Autostart** property." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:255 msgid "" "Click the script icon next to Sprite2D to jump back to the scripting " "workspace." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:259 msgid "We need to do two operations to connect the nodes via code:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:261 msgid "Get a reference to the Timer from the Sprite2D." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:262 msgid "Call the ``connect()`` method on the Timer's \"timeout\" signal." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:264 msgid "" "To connect to a signal via code, you need to call the ``connect()`` method " "of the signal you want to listen to. In this case, we want to listen to the " "Timer's \"timeout\" signal." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:268 msgid "" "We want to connect the signal when the scene is instantiated, and we can do " "that using the :ref:`Node._ready() ` built-" "in function, which is called automatically by the engine when a node is " "fully instantiated." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:272 msgid "" "To get a reference to a node relative to the current one, we use the method :" "ref:`Node.get_node() `. We can store the " "reference in a variable." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:289 msgid "" "The function ``get_node()`` looks at the Sprite2D's children and gets nodes " "by their name. For example, if you renamed the Timer node to " "\"BlinkingTimer\" in the editor, you would have to change the call to " "``get_node(\"BlinkingTimer\")``." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:295 msgid "" "We can now connect the Timer to the Sprite2D in the ``_ready()`` function." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:312 msgid "" "The line reads like so: we connect the Timer's \"timeout\" signal to the " "node to which the script is attached. When the Timer emits ``timeout``, we " "want to call the function ``_on_timer_timeout()``, that we need to define. " "Let's add it at the bottom of our script and use it to toggle our sprite's " "visibility." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:317 msgid "" "By convention, we name these callback methods in GDScript as " "\"_on_node_name_signal_name\" and in C# as \"OnNodeNameSignalName\". Here, " "it'll be \"_on_timer_timeout\" for GDScript and OnTimerTimeout() for C#." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:334 msgid "" "The ``visible`` property is a boolean that controls the visibility of our " "node. The line ``visible = not visible`` toggles the value. If ``visible`` " "is ``true``, it becomes ``false``, and vice-versa." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:338 msgid "" "If you run the scene now, you will see that the sprite blinks on and off, at " "one second intervals." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:344 msgid "" "That's it for our little moving and blinking Godot icon demo! Here is the " "complete ``sprite_2d.gd`` file for reference." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:408 msgid "Custom signals" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:410 msgid "" "This section is a reference on how to define and use your own signals, and " "does not build upon the project created in previous lessons." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:413 msgid "" "You can define custom signals in a script. Say, for example, that you want " "to show a game over screen when the player's health reaches zero. To do so, " "you could define a signal named \"died\" or \"health_depleted\" when their " "health reaches 0." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:439 msgid "" "As signals represent events that just occurred, we generally use an action " "verb in the past tense in their names." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:442 msgid "" "Your signals work the same way as built-in ones: they appear in the Node tab " "and you can connect to them like any other." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:447 msgid "To emit a signal in your scripts, call ``emit()`` on the signal." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:469 msgid "" "A signal can optionally declare one or more arguments. Specify the argument " "names between parentheses:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:495 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:500 msgid "" "To emit values along with the signal, add them as extra arguments to the " "``emit()`` function:" msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:523 msgid "" "Any node in Godot emits signals when something specific happens to them, " "like a button being pressed. Other nodes can connect to individual signals " "and react to selected events." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:527 msgid "" "Signals have many uses. With them, you can react to a node entering or " "exiting the game world, to a collision, to a character entering or leaving " "an area, to an element of the interface changing size, and much more." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:531 msgid "" "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:535 msgid "" "In the next section, :ref:`doc_your_first_2d_game`, you'll create a complete " "2D game and put everything you learned so far into practice." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:4 msgid "Your first 2D game" msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:6 msgid "" "In this step-by-step tutorial series, you will create your first complete 2D " "game with Godot. By the end of the series, you will have a simple yet " "complete game of your own, like the image below." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:12 msgid "" "You will learn how the Godot editor works, how to structure a project, and " "build a 2D game." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:15 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/first_2d_game/index.rst:19 msgid "" "The game is called \"Dodge the Creeps!\". Your character must move and avoid " "the enemies for as long as possible." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:22 #: ../../docs/getting_started/first_3d_game/index.rst:19 msgid "You will learn to:" msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:24 msgid "Create a complete 2D game with the Godot editor." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:25 #, fuzzy msgid "Structure a simple game project." msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/index.rst:26 msgid "Move the player character and change its sprite." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:27 msgid "Spawn random enemies." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:28 msgid "Count the score." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:30 #: ../../docs/getting_started/first_3d_game/index.rst:30 msgid "And more." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:32 msgid "" "You'll find another series where you'll create a similar game but in 3D. We " "recommend you to start with this one, though." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:35 msgid "**Why start with 2D?**" msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:37 msgid "" "If you are new to game development or unfamiliar with Godot, we recommend " "starting with 2D games. This will allow you to become comfortable with both " "before tackling 3D games, which tend to be more complicated." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:41 msgid "You can find a completed version of this project at this location:" msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:43 #, fuzzy msgid "" "https://github.com/godotengine/godot-demo-projects/tree/master/2d/" "dodge_the_creeps" msgstr "" "Uz ovu dokumentaciju takođe možete pogledati raznorazne `Godot demo projects " "`_." #: ../../docs/getting_started/first_2d_game/index.rst:46 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_basics.rst:36 msgid "Prerequisites" msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:48 msgid "" "This step-by-step tutorial is intended for beginners who followed the " "complete :ref:`Getting Started `." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:51 #, fuzzy msgid "" "If you're an experienced programmer, you can find the complete demo's source " "code here: `Dodge the Creeps source code `__." msgstr "" "Uz ovu dokumentaciju takođe možete pogledati različite Godo demo projekte " "`Godot demo projects `_." #: ../../docs/getting_started/first_2d_game/index.rst:55 msgid "" "We prepared some game assets you'll need to download so we can jump straight " "to the code." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:58 msgid "You can download them by clicking the link below." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:60 msgid "" "`dodge_the_creeps_2d_assets.zip `_." msgstr "" #: ../../docs/getting_started/first_2d_game/index.rst:63 #: ../../docs/getting_started/first_3d_game/index.rst:55 msgid "Contents" msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:4 #: ../../docs/tutorials/scripting/gdextension/gdextension_cpp_example.rst:18 msgid "Setting up the project" msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:6 msgid "In this short first part, we'll set up and organize the project." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:8 #, fuzzy msgid "Launch Godot and create a new project." msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:12 msgid "" "When creating the new project, you only need to choose a valid *Project " "Path*. You can leave the other default settings alone." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:17 #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:24 msgid "" "Download `dodge_the_creeps_2d_assets.zip `_. The archive contains the images and " "sounds you'll be using to make the game. Extract the archive and move the " "``art/`` and ``fonts/`` directories to your project's directory." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:29 msgid "" "Ensure that you have the required dependencies to use C# in Godot. You need " "the latest stable .NET SDK, and an editor such as VS Code. See :ref:" "`doc_c_sharp_setup`." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:35 msgid "" "The C++ part of this tutorial wasn't rewritten for the new GDExtension " "system yet." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:37 msgid "Your project folder should look like this." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:41 msgid "" "This game is designed for portrait mode, so we need to adjust the size of " "the game window. Click on *Project -> Project Settings* to open the project " "settings window, in the left column open the *Display -> Window* tab. There, " "set \"Viewport Width\" to ``480`` and \"Viewport Height\" to ``720``." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:48 msgid "" "Also, under the **Stretch** options, set **Mode** to ``canvas_items`` and " "**Aspect** to ``keep``. This ensures that the game scales consistently on " "different sized screens." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:54 msgid "Organizing the project" msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:56 msgid "" "In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and " "``HUD``, which we will combine into the game's ``Main`` scene." msgstr "" #: ../../docs/getting_started/first_2d_game/01.project_setup.rst:59 msgid "" "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/first_2d_game/01.project_setup.rst:66 msgid "" "With the project in place, we're ready to design the player scene in the " "next lesson." msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:4 #, fuzzy msgid "Creating the player scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:6 msgid "" "With the project settings in place, we can start working on the player-" "controlled character." msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:9 msgid "" "The first scene will define 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/first_2d_game/02.player_scene.rst:14 msgid "Node structure" msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:16 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/first_2d_game/02.player_scene.rst:23 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/first_2d_game/02.player_scene.rst:26 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/first_2d_game/02.player_scene.rst:31 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 \"Make " "selected node's children not selectable.\"" msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:38 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/first_2d_game/02.player_scene.rst:41 msgid "For this project, we will be following the Godot naming conventions." msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:43 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/first_2d_game/02.player_scene.rst:47 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/first_2d_game/02.player_scene.rst:54 msgid "Sprite animation" msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:56 msgid "" "Click on the ``Player`` node and add (:kbd:`Ctrl + A` on Windows/Linux or :" "kbd:`Cmd + A` on macOS) a child node :ref:`AnimatedSprite2D " "`. The ``AnimatedSprite2D`` will handle the " "appearance and animations for our player. Notice that there is a warning " "symbol next to the node. An ``AnimatedSprite2D`` requires a :ref:" "`SpriteFrames ` resource, which is a list of the " "animations it can display. To create one, find the ``Sprite Frames`` " "property under the ``Animation`` tab in the Inspector and click \"[empty]\" -" "> \"New SpriteFrames\". Click again to open the \"SpriteFrames\" panel:" msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:68 msgid "" "On the left is a list of animations. Click the \"default\" one and rename it " "to \"walk\". Then click the \"Add 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/first_2d_game/02.player_scene.rst:77 msgid "" "The player images are a bit too large for the game window, so we need to " "scale them down. Click on the ``AnimatedSprite2D`` 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/first_2d_game/02.player_scene.rst:84 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/first_2d_game/02.player_scene.rst:93 msgid "When you're finished, your ``Player`` scene should look like this:" msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:97 msgid "Make sure to save the scene again after these changes." msgstr "" #: ../../docs/getting_started/first_2d_game/02.player_scene.rst:99 msgid "" "In the next part, we'll add a script to the player node to move and animate " "it. Then, we'll set up collision detection to know when the player got hit " "by something." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:4 #, fuzzy msgid "Coding the player" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:6 msgid "" "In this lesson, we'll add player movement, animation, and set it up to " "detect collisions." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:9 msgid "" "To do so, 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/first_2d_game/03.coding_the_player.rst:15 msgid "" "In the script settings window, you can leave the default settings alone. " "Just click \"Create\":" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:18 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/first_2d_game/03.coding_the_player.rst:23 msgid "" "If this is your first time encountering GDScript, please read :ref:" "`doc_scripting` before continuing." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:26 msgid "Start by declaring the member variables this object will need:" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:48 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 Inspector in " "a new section with the name of the script. Remember, if you change the value " "here, it will override the value written in the script." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:57 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 **Build** button at the top right of the editor." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:66 msgid "" "Your ``player.gd`` script should already contain a ``_ready()`` and a " "``_process()`` function. If you didn't select the default template shown " "above, create these functions while following the lesson." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:71 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/first_2d_game/03.coding_the_player.rst:87 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/first_2d_game/03.coding_the_player.rst:92 msgid "Check for input." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:93 msgid "Move in the given direction." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:94 msgid "Play the appropriate animation." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:96 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 game, " "we will map the arrow keys to the four directions." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:102 msgid "" "Click on *Project -> Project Settings* to open the project settings window " "and click on the *Input Map* tab at the top. Type \"move_right\" in the top " "bar and click the \"Add\" button to add the ``move_right`` action." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:108 msgid "" "We need to assign a key to this action. Click the \"+\" icon on the right, " "to open the event manager window." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:113 msgid "" "The \"Listening for Input...\" field should automatically be selected. Press " "the \"right\" key on your keyboard, and the menu should look like this now." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:118 msgid "" "Select the \"ok\" button. The \"right\" key is now associated with the " "``move_right`` action." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:120 msgid "Repeat these steps to add three more mappings:" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:122 msgid "``move_left`` mapped to the left arrow key." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:123 msgid "``move_up`` mapped to the up arrow key." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:124 msgid "And ``move_down`` mapped to the down arrow key." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:126 msgid "Your input map tab should look like this:" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:130 msgid "Click the \"Close\" button to close the project settings." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:134 msgid "" "We only mapped one key to each input action, but you can map multiple keys, " "joystick buttons, or mouse buttons to the same input action." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:137 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/first_2d_game/03.coding_the_player.rst:199 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/first_2d_game/03.coding_the_player.rst:206 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/first_2d_game/03.coding_the_player.rst:210 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/first_2d_game/03.coding_the_player.rst:214 msgid "" "We also check whether the player is moving so we can call ``play()`` or " "``stop()`` on the AnimatedSprite2D." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:217 msgid "" "``$`` is shorthand for ``get_node()``. So in the code above, " "``$AnimatedSprite2D.play()`` is the same as ``get_node(\"AnimatedSprite2D\")." "play()``." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:221 msgid "" "In GDScript, ``$`` returns the node at the relative path from the current " "node, or returns ``null`` if the node is not found. Since AnimatedSprite2D " "is a child of the current node, we can use ``$AnimatedSprite2D``." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:226 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/first_2d_game/03.coding_the_player.rst:245 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/first_2d_game/03.coding_the_player.rst:250 msgid "" "Click \"Run Current Scene\" (:kbd:`F6`, :kbd:`Cmd + R` on macOS) and confirm " "you can move the player around the screen in all directions." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:253 msgid "If you get an error in the \"Debugger\" panel that says" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:255 msgid "" "``Attempt to call function 'play' in base 'null instance' on a null " "instance``" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:258 msgid "" "this likely means you spelled the name of the AnimatedSprite2D node wrong. " "Node names are case-sensitive and ``$NodeName`` must match the name you see " "in the scene tree." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:263 msgid "Choosing animations" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:265 msgid "" "Now that the player can move, we need to change which animation the " "AnimatedSprite2D 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/first_2d_game/03.coding_the_player.rst:299 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/first_2d_game/03.coding_the_player.rst:323 msgid "" "Play the scene again and check that the animations are correct in each of " "the directions." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:326 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/first_2d_game/03.coding_the_player.rst:331 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/first_2d_game/03.coding_the_player.rst:344 msgid "Preparing for collisions" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:346 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/first_2d_game/03.coding_the_player.rst:350 msgid "" "Add the following at the top of the script. If you're using GDScript, add it " "after ``extends Area2D``. If you're using C#, add it after ``public partial " "class Player : Area2D``:" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:365 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/first_2d_game/03.coding_the_player.rst:372 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: " "Node2D)`` signal. This signal will be emitted when a body contacts the " "player. Click \"Connect..\" and the \"Connect a Signal\" window appears." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:377 msgid "" "Godot will create a function with that exact name directly in script for " "you. You don't need to change the default settings right now." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:384 msgid "" "If you're using an external text editor (for example, Visual Studio Code), a " "bug currently prevents Godot from doing so. You'll be sent to your external " "editor, but the new function won't be there." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:388 msgid "" "In this case, you'll need to write the function yourself into the Player's " "script file." msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:393 msgid "" "Note the green icon indicating that a signal is connected to this function; " "this does not mean the function exists, only that the signal will attempt to " "connect to a function with that name, so double-check that the spelling of " "the function matches exactly!" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:397 msgid "Next, add this code to the function:" msgstr "" #: ../../docs/getting_started/first_2d_game/03.coding_the_player.rst:418 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/first_2d_game/03.coding_the_player.rst:422 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/first_2d_game/03.coding_the_player.rst:427 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/first_2d_game/03.coding_the_player.rst:447 msgid "With the player working, we'll work on the enemy in the next lesson." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:4 #, fuzzy msgid "Creating the enemy" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:6 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/first_2d_game/04.creating_the_enemy.rst:10 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/first_2d_game/04.creating_the_enemy.rst:14 msgid "Node setup" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:16 msgid "Click Scene -> New Scene from the top menu and add the following nodes:" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:18 msgid ":ref:`RigidBody2D ` (named ``Mob``)" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:20 msgid ":ref:`AnimatedSprite2D `" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:21 msgid ":ref:`CollisionShape2D `" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:22 msgid ":ref:`VisibleOnScreenNotifier2D `" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:24 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/first_2d_game/04.creating_the_enemy.rst:27 msgid "" "Select the ``Mob`` node and set its ``Gravity Scale`` property in the :ref:" "`RigidBody2D ` section of the inspector to ``0``. This " "will prevent the mob from falling downwards." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:32 msgid "" "In addition, under the :ref:`CollisionObject2D ` " "section just beneath the **RigidBody2D** section, expand the **Collision** " "group and uncheck the ``1`` inside the ``Mask`` property. This will ensure " "the mobs do not collide with each other." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:40 msgid "" "Set up the :ref:`AnimatedSprite2D ` 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/first_2d_game/04.creating_the_enemy.rst:44 msgid "" "The ``Animation Speed`` property has to be set for each individual " "animation. Adjust it to ``3`` for all 3 animations." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:48 msgid "" "You can use the \"Play Animation\" buttons on the right of the ``Animation " "Speed`` input field to preview your animations." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:50 msgid "" "We'll select one of these animations randomly so that the mobs will have " "some variety." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:53 msgid "" "Like the player images, these mob images need to be scaled down. Set the " "``AnimatedSprite2D``'s ``Scale`` property to ``(0.75, 0.75)``." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:56 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`` property " "to ``90`` (under \"Transform\" in the Inspector)." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:60 #, fuzzy msgid "Save the scene." msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:63 msgid "Enemy script" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:65 msgid "Add a script to the ``Mob`` like this:" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:81 msgid "" "Now let's look at the rest of the script. In ``_ready()`` we play the " "animation and randomly choose one of the three animation types:" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:100 msgid "" "First, we get the list of animation names from the AnimatedSprite2D's " "``sprite_frames`` property. This returns an Array containing all three " "animation names: ``[\"walk\", \"swim\", \"fly\"]``." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:104 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/first_2d_game/04.creating_the_enemy.rst:108 msgid "" "The last piece is to make the mobs delete themselves when they leave the " "screen. Connect the ``screen_exited()`` signal of the " "``VisibleOnScreenNotifier2D`` node to the ``Mob`` and add this code:" msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:125 msgid "This completes the `Mob` scene." msgstr "" #: ../../docs/getting_started/first_2d_game/04.creating_the_enemy.rst:127 msgid "" "With the player and enemies ready, in the next part, we'll bring them " "together in a new scene. We'll make enemies spawn randomly around the game " "board and move forward, turning our project into a playable game." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:4 #, fuzzy msgid "The main game scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:6 msgid "" "Now it's time to bring everything we did together into a playable game scene." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:8 msgid "" "Create a new scene and add a :ref:`Node ` named ``Main``. (The " "reason we are using Node instead of Node2D is because this node will be a " "container for handling game logic. It does not require 2D functionality " "itself.)" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:12 msgid "" "Click the **Instance** button (represented by a chain link icon) and select " "your saved ``player.tscn``." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:17 msgid "" "Now, add the following nodes as children of ``Main``, and name them as shown " "(values are in seconds):" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:20 msgid "" ":ref:`Timer ` (named ``MobTimer``) - to control how often mobs " "spawn" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:22 msgid "" ":ref:`Timer ` (named ``ScoreTimer``) - to increment the score " "every second" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:24 msgid "" ":ref:`Timer ` (named ``StartTimer``) - to give a delay before " "starting" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:26 msgid "" ":ref:`Marker2D ` (named ``StartPosition``) - to indicate the " "player's start position" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:29 msgid "" "Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:31 msgid "``MobTimer``: ``0.5``" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:32 msgid "``ScoreTimer``: ``1``" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:33 msgid "``StartTimer``: ``2``" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:35 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/first_2d_game/05.the_main_game_scene.rst:39 msgid "Spawning mobs" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:41 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/first_2d_game/05.the_main_game_scene.rst:48 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\" and \"Use Smart Snap\" are both selected. These " "options can be found to the left of the \"Lock\" button, appearing as a " "magnet next to some dots and intersecting lines, respectively." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:56 msgid "" "Draw the path in *clockwise* order, or your mobs will spawn pointing " "*outwards* instead of *inwards*!" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:61 msgid "" "After placing point ``4`` in the image, click the \"Close Curve\" button and " "your curve will be complete." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:64 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/first_2d_game/05.the_main_game_scene.rst:69 msgid "Your scene should look like this:" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:74 msgid "Main script" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:76 msgid "" "Add a script to ``Main``. At the top of the script, we use ``@export var " "mob_scene: PackedScene`` to allow us to choose the Mob scene we want to " "instance." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:102 msgid "" "Click the ``Main`` node and you will see the ``Mob Scene`` property in the " "Inspector under \"Main.gd\"." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:105 msgid "You can assign this property's value in two ways:" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:107 msgid "" "Drag ``mob.tscn`` from the \"FileSystem\" dock and drop it in the **Mob " "Scene** property." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:109 msgid "" "Click the down arrow next to \"[empty]\" and choose \"Load\". Select ``mob." "tscn``." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:111 msgid "" "Next, select the instance of the ``Player`` scene under ``Main`` node in the " "Scene dock, and access the Node dock on the sidebar. Make sure to have the " "Signals tab selected in the Node dock." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:115 msgid "" "You should see a list of the signals for the ``Player`` node. Find and " "double-click the ``hit`` signal in the list (or right-click it and select " "\"Connect...\"). This will open the signal connection dialog. 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 signal connection dialog and click \"Connect\". You are " "aiming to have the ``hit`` signal emitted from ``Player`` and handled in the " "``Main`` script. 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/first_2d_game/05.the_main_game_scene.rst:156 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/first_2d_game/05.the_main_game_scene.rst:183 msgid "" "In ``_on_mob_timer_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. When " "we spawn a mob, we'll pick a random value between ``150.0`` and ``250.0`` " "for how fast each mob will move (it would be boring if they were all moving " "at the same speed)." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:191 msgid "" "Note that a new instance must be added to the scene using ``add_child()``." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:254 msgid "" "Why ``PI``? In functions requiring angles, Godot uses *radians*, not " "degrees. Pi represents a half turn in radians, about ``3.1415`` (there is " "also ``TAU`` which is equal to ``2 * PI``). If you're more comfortable " "working with degrees, you'll need to use the ``deg_to_rad()`` and " "``rad_to_deg()`` functions to convert between the two." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:262 #, fuzzy msgid "Testing the scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:264 msgid "" "Let's test the scene to make sure everything is working. Add this " "``new_game`` call to ``_ready()``:" msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:280 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/first_2d_game/05.the_main_game_scene.rst:284 msgid "" "If you had already set another scene as the \"Main Scene\", you can right " "click ``main.tscn`` in the FileSystem dock and select \"Set As Main Scene\"." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:287 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/first_2d_game/05.the_main_game_scene.rst:290 msgid "" "When you're sure everything is working, remove the call to ``new_game()`` " "from ``_ready()`` and replace it with ``pass``." msgstr "" #: ../../docs/getting_started/first_2d_game/05.the_main_game_scene.rst:293 msgid "" "What's our game lacking? Some user interface. In the next lesson, we'll add " "a title screen and display the player's score." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:4 msgid "Heads up display" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:6 msgid "" "The final piece our game needs is a User Interface (UI) to display things " "like score, a \"game over\" message, and a restart button." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:9 msgid "" "Create a new scene, click the \"Other Node\" button 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/first_2d_game/06.heads_up_display.rst:13 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/first_2d_game/06.heads_up_display.rst:17 msgid "The HUD needs to display the following information:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:19 msgid "Score, changed by ``ScoreTimer``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:20 msgid "A message, such as \"Game Over\" or \"Get Ready!\"" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:21 msgid "A \"Start\" button to begin the game." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:23 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/first_2d_game/06.heads_up_display.rst:27 msgid "Create the following as children of the ``HUD`` node:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:29 msgid ":ref:`Label ` named ``ScoreLabel``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:30 msgid ":ref:`Label ` named ``Message``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:31 msgid ":ref:`Button ` named ``StartButton``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:32 msgid ":ref:`Timer ` named ``MessageTimer``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:34 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/first_2d_game/06.heads_up_display.rst:39 msgid "" "Under \"Theme Overrides > Fonts\", choose \"Load\" and select the \"Xolonium-" "Regular.ttf\" file." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:43 msgid "" "The font size is still too small, increase it to ``64`` under \"Theme " "Overrides > Font Sizes\". Once you've done this with the ``ScoreLabel``, " "repeat the changes for the ``Message`` and ``StartButton`` nodes." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:48 msgid "" "**Anchors:** ``Control`` nodes have a position and size, but they also have " "anchors. Anchors define the origin - the reference point for the edges of " "the node." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:52 msgid "" "Arrange the nodes as shown below. You can drag the nodes to place them " "manually, or for more precise placement, use \"Anchor Presets\"." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:59 msgid "ScoreLabel" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:61 msgid "Add the text ``0``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:62 #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:69 msgid "" "Set the \"Horizontal Alignment\" and \"Vertical Alignment\" to ``Center``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:63 msgid "Choose the \"Anchor Preset\" ``Center Top``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:66 msgid "Message" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:68 msgid "Add the text ``Dodge the Creeps!``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:70 msgid "" "Set the \"Autowrap Mode\" to ``Word``, otherwise the label will stay on one " "line." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:71 msgid "" "Under \"Control - Layout/Transform\" set \"Size X\" to ``480`` to use the " "entire width of the screen." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:72 msgid "Choose the \"Anchor Preset\" ``Center``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:75 msgid "StartButton" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:77 msgid "Add the text ``Start``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:78 msgid "" "Under \"Control - Layout/Transform\", set \"Size X\" to ``200`` and \"Size " "Y\" to ``100`` to add a little bit more padding between the border and text." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:80 msgid "Choose the \"Anchor Preset\" ``Center Bottom``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:81 msgid "Under \"Control - Layout/Transform\", set \"Position Y\" to ``580``." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:83 msgid "" "On the ``MessageTimer``, set the ``Wait Time`` to ``2`` and set the ``One " "Shot`` property to \"On\"." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:86 msgid "Now add this script to ``HUD``:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:108 msgid "" "We now want to display a message temporarily, such as \"Get Ready\", so we " "add the following code" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:130 msgid "" "We also need to process what happens when the player loses. The code below " "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/first_2d_game/06.heads_up_display.rst:163 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/first_2d_game/06.heads_up_display.rst:167 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/first_2d_game/06.heads_up_display.rst:172 msgid "Add the code below to ``HUD`` to update the score" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:187 msgid "" "Connect the ``pressed()`` signal of ``StartButton`` and the ``timeout()`` " "signal of ``MessageTimer``, and add the following code to the new functions:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:214 msgid "Connecting HUD to Main" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:216 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/first_2d_game/06.heads_up_display.rst:222 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/first_2d_game/06.heads_up_display.rst:225 msgid "" "In the Node tab, connect the HUD's ``start_game`` signal to the " "``new_game()`` function of the Main node by clicking the \"Pick\" button in " "the \"Connect a Signal\" window and selecting the ``new_game()`` method or " "type \"new_game\" below \"Receiver Method\" in the window. Verify that the " "green connection icon now appears next to ``func new_game()`` in the script." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:231 msgid "" "In ``new_game()``, update the score display and show the \"Get Ready\" " "message:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:245 msgid "In ``game_over()`` we need to call the corresponding ``HUD`` function:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:256 msgid "" "Finally, add this to ``_on_score_timer_timeout()`` to keep the display in " "sync with the changing score:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:270 msgid "" "Remember to remove the call to ``new_game()`` from ``_ready()`` if you " "haven't already, otherwise your game will start automatically." msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:274 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/first_2d_game/06.heads_up_display.rst:278 msgid "Removing old creeps" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:280 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/first_2d_game/06.heads_up_display.rst:285 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/first_2d_game/06.heads_up_display.rst:291 msgid "" "Now all mobs will be in the \"mobs\" group. We can then add the following " "line to the ``new_game()`` function in ``Main``:" msgstr "" #: ../../docs/getting_started/first_2d_game/06.heads_up_display.rst:305 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/first_2d_game/06.heads_up_display.rst:308 msgid "" "The game's mostly done at this point. In the next and last part, we'll " "polish it a bit by adding a background, looping music, and some keyboard " "shortcuts." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:4 msgid "Finishing up" msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:6 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." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:9 msgid "Feel free to expand the gameplay with your own ideas." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:12 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:133 msgid "Background" msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:14 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\" -> \"Anchors Preset\" -> \"Full Rect\" " "either in the toolbar at the top of the viewport or in the inspector so that " "it covers the screen." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:20 msgid "" "You could also add a background image, if you have one, by using a " "``TextureRect`` node instead." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:24 msgid "Sound effects" msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:26 msgid "" "Sound and music can be the single most effective way to add appeal to the " "game experience. In your game's **art** 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/first_2d_game/07.finishing-up.rst:31 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/first_2d_game/07.finishing-up.rst:36 msgid "" "All audio is automatically imported with the ``Loop`` setting disabled. If " "you want the music to loop seamlessly, click on the Stream file arrow, " "select ``Make Unique``, then click on the Stream file and check the ``Loop`` " "box." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:40 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/first_2d_game/07.finishing-up.rst:43 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:74 msgid "Keyboard shortcut" msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:76 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/first_2d_game/07.finishing-up.rst:80 msgid "" "In a previous lesson, we created four input actions to move the character. " "We will create a similar input action to map to the start button." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:83 msgid "" "Select \"Project\" -> \"Project Settings\" and then click on the \"Input " "Map\" tab. In the same way you created the movement input actions, create a " "new input action called ``start_game`` and add a key mapping for the :kbd:" "`Enter` key." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:90 msgid "" "Now would be a good time to add controller support if you have one " "available. Attach or pair your controller and then under each input action " "that you wish to add controller support for, click on the \"+\" button and " "press the corresponding button, d-pad, or stick direction that you want to " "map to the respective input action." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:95 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its **Shortcut** " "property in the Inspector. Create a new :ref:`Shortcut ` " "resource by clicking within the box, open the **Events** array and add a new " "array element to it by clicking on **Array[InputEvent] (size 0)**." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:102 msgid "" "Create a new :ref:`InputEventAction ` and name it " "``start_game``." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:106 msgid "" "Now when the start button appears, you can either click it or press :kbd:" "`Enter` to start the game." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:109 msgid "And with that, you completed your first 2D game in Godot." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:113 msgid "" "You got to make a player-controlled character, enemies that spawn randomly " "around the game board, count the score, implement a game over and replay, " "user interface, sounds, and more. Congratulations!" msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:117 msgid "" "There's still much to learn, but you can take a moment to appreciate what " "you achieved." msgstr "" #: ../../docs/getting_started/first_2d_game/07.finishing-up.rst:120 msgid "" "And when you're ready, you can move on to :ref:`doc_your_first_3d_game` to " "learn to create a complete 3D game from scratch, in Godot." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:6 msgid "Your first 3D game" msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:8 msgid "" "In this step-by-step tutorial series, you will create your first complete 3D " "game with Godot. By the end of the series, you will have a simple yet " "finished project of your own like the animated gif below." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:14 msgid "" "The game we'll code here is similar to :ref:`doc_your_first_2d_game`, with a " "twist: you can now jump and your goal is to squash the creeps. This way, you " "will both **recognize patterns** you learned in the previous tutorial and " "**build upon them** with new code and features." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:21 msgid "Work with 3D coordinates with a jumping mechanic." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:22 msgid "" "Use kinematic bodies to move 3D characters and detect when and how they " "collide." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:24 msgid "" "Use physics layers and a group to detect interactions with specific entities." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:25 msgid "" "Code basic procedural gameplay by instancing monsters at regular time " "intervals." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:27 msgid "Design a movement animation and change its speed at run-time." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:28 msgid "Draw a user interface on a 3D game." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:32 msgid "" "This tutorial is for beginners who followed the complete getting started " "series. We'll start slow with detailed instructions and shorten them as we " "do similar steps. If you're an experienced programmer, you can browse the " "complete demo's source code here: `Squash the Creep source code `__." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:40 msgid "" "You can follow this series without having done the 2D one. However, if " "you're new to game development, we recommend you to start with 2D. 3D game " "code is always more complex and the 2D series will give you foundations to " "follow along more comfortably." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:45 msgid "" "We prepared some game assets so we can jump straight to the code. You can " "download them here: `Squash the Creeps assets `__." msgstr "" #: ../../docs/getting_started/first_3d_game/index.rst:49 msgid "" "We will first work on a basic prototype for the player's movement. We will " "then add the monsters that we'll spawn randomly around the screen. After " "that, we'll implement the jump and squashing mechanic before refining the " "game with some nice animation. We'll wrap up with the score and the retry " "screen." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:6 #, fuzzy msgid "Setting up the game area" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:8 msgid "" "In this first part, we're going to set up the game area. Let's get started " "by importing the start assets and setting up the game scene." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:11 msgid "" "We've prepared a Godot project with the 3D models and sounds we'll use for " "this tutorial, linked in the index page. If you haven't done so yet, you can " "download the archive here: `Squash the Creeps assets `__." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:16 msgid "" "Once you downloaded it, extract the .zip archive on your computer. Open the " "Godot Project Manager and click the *Import* button." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:21 msgid "" "In the import popup, enter the full path to the freshly created directory " "``squash_the_creeps_start/``. You can click the *Browse* button on the right " "to open a file browser and navigate to the ``project.godot`` file the folder " "contains." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:28 msgid "Click *Import & Edit* to open the project in the editor." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:32 msgid "" "The start project contains an icon and two folders: ``art/`` and ``fonts/``. " "There, you will find the art assets and music we'll use in the game." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:37 msgid "" "There are two 3D models, ``player.glb`` and ``mob.glb``, some materials that " "belong to these models, and a music track." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:41 msgid "Setting up the playable area" msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:43 msgid "" "We're going to create our main scene with a plain :ref:`Node ` " "as its root. In the *Scene* dock, click the *Add Child Node* button " "represented by a \"+\" icon in the top-left and double-click on *Node*. Name " "the node ``Main``. An alternate method to rename the node is to right-click " "on *Node* and choose *Rename* (or :kbd:`F2`). Alternatively, to add a node " "to the scene, you can press :kbd:`Ctrl + a` (or :kbd:`Cmd + a` on macOS)." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:50 msgid "" "Save the scene as ``main.tscn`` by pressing :kbd:`Ctrl + s` (:kbd:`Cmd + s` " "on macOS)." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:52 msgid "" "We'll start by adding a floor that'll prevent the characters from falling. " "To create static colliders like the floor, walls, or ceilings, you can use :" "ref:`StaticBody3D ` nodes. They require :ref:" "`CollisionShape3D ` child nodes to define the " "collision area. With the ``Main`` node selected, add a :ref:`StaticBody3D " "` node, then a :ref:`CollisionShape3D " "`. Rename the :ref:`StaticBody3D " "` to ``Ground``." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:59 msgid "Your scene tree should look like this" msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:63 msgid "" "A warning sign next to the :ref:`CollisionShape3D ` " "appears because we haven't defined its shape. If you click the icon, a popup " "appears to give you more information." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:68 msgid "" "To create a shape, select the :ref:`CollisionShape3D " "` node, head to the *Inspector* and click the " "** field next to the *Shape* property. Create a new *BoxShape3D*." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:73 msgid "" "The box shape is perfect for flat ground and walls. Its thickness makes it " "reliable to block even fast-moving objects." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:76 msgid "" "A box's wireframe appears in the viewport with three orange dots. You can " "click and drag these to edit the shape's extents interactively. We can also " "precisely set the size in the inspector. Click on the :ref:`BoxShape3D " "` to expand the resource. Set its *Size* to ``60`` on the " "X axis, ``2`` for the Y axis, and ``60`` for the Z axis." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:85 msgid "" "Collision shapes are invisible. We need to add a visual floor that goes " "along with it. Select the ``Ground`` node and add a :ref:`MeshInstance3D " "` as its child." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:90 msgid "" "In the *Inspector*, click on the field next to *Mesh* and create a :ref:" "`BoxMesh ` resource to create a visible box." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:95 msgid "" "Once again, it's too small by default. Click the box icon to expand the " "resource and set its *Size* to ``60``, ``2``, and ``60``." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:100 msgid "" "You should see a wide grey slab that covers the grid and blue and red axes " "in the viewport." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:103 msgid "" "We're going to move the ground down so we can see the floor grid. Select the " "``Ground`` node, hold the :kbd:`Ctrl` key down to turn on grid snapping, and " "click and drag down on the Y axis. It's the green arrow in the move gizmo." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:111 msgid "" "If you can't see the 3D object manipulator like on the image above, ensure " "the *Select Mode* is active in the toolbar above the view." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:116 msgid "" "Move the ground down ``1`` meter, in order to have a visible editor grid. A " "label in the bottom-left corner of the viewport tells you how much you're " "translating the node." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:123 msgid "" "Moving the *Ground* node down moves both children along with it. Ensure you " "move the *Ground* node, **not** the *MeshInstance3D* or the " "*CollisionShape3D*." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:127 msgid "Ultimately, ``Ground``'s transform.position.y should be -1" msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:131 msgid "" "Let's add a directional light so our scene isn't all grey. Select the " "``Main`` node and add a child node :ref:`DirectionalLight3D " "`." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:136 msgid "" "We need to move and rotate the :ref:`DirectionalLight3D " "` node. Move it up by clicking and dragging on the " "manipulator's green arrow and click and drag on the red arc to rotate it " "around the X axis, until the ground is lit." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:141 msgid "" "In the *Inspector*, turn on *Shadow -> Enabled* by clicking the checkbox." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:145 msgid "At this point, your project should look like this." msgstr "" #: ../../docs/getting_started/first_3d_game/01.game_setup.rst:149 msgid "" "That's our starting point. In the next part, we will work on the player " "scene and base movement." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:6 msgid "Player scene and input actions" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:8 msgid "" "In the next two lessons, we will design the player scene, register custom " "input actions, and code player movement. By the end, you'll have a playable " "character that moves in eight directions." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:15 msgid "" "Create a new scene by going to the Scene menu in the top-left and clicking " "*New Scene*." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:20 msgid "" "Create a :ref:`CharacterBody3D ` node as the root" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:24 msgid "" "Name the :ref:`CharacterBody3D ` to ``Player``. " "Character bodies are complementary to the area and rigid bodies used in the " "2D game tutorial. Like rigid bodies, they can move and collide with the " "environment, but instead of being controlled by the physics engine, **you** " "dictate their movement. You will see how we use the node's unique features " "when we code the jump and squash mechanics." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:33 msgid "" "To learn more about the different physics node types, see the :ref:" "`doc_physics_introduction`." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:36 msgid "" "For now, we're going to create a basic rig for our character's 3D model. " "This will allow us to rotate the model later via code while it plays an " "animation." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:39 msgid "" "Add a :ref:`Node3D ` node as a child of ``Player`` and name it " "``Pivot``" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:43 msgid "" "Then, in the FileSystem dock, expand the ``art/`` folder by double-clicking " "it and drag and drop ``player.glb`` onto ``Pivot``." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:49 msgid "" "This should instantiate the model as a child of ``Pivot``. You can rename it " "to ``Character``." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:56 msgid "" "The ``.glb`` files contain 3D scene data based on the open source GLTF 2.0 " "specification. They're a modern and powerful alternative to a proprietary " "format like FBX, which Godot also supports. To produce these files, we " "designed the model in `Blender 3D `__ and exported " "it to GLTF." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:61 msgid "" "As with all kinds of physics nodes, we need a collision shape for our " "character to collide with the environment. Select the ``Player`` node again " "and add a child node :ref:`CollisionShape3D `. In " "the *Inspector*, on the *Shape* property, add a new :ref:`SphereShape3D " "`." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:67 msgid "The sphere's wireframe appears below the character." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:69 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:370 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:44 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:66 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:50 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:33 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:38 #: ../../docs/community/asset_library/using_assetlib.rst:81 msgid "|image3|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:169 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:441 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:337 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:371 #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:529 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:453 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:611 #: ../../docs/community/asset_library/using_assetlib.rst:190 msgid "image3" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:71 msgid "" "It will be the shape the physics engine uses to collide with the " "environment, so we want it to better fit the 3D model. Shrink it a bit by " "dragging the orange dot in the viewport. My sphere has a radius of about " "``0.8`` meters." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:75 msgid "" "Then, move the shape up so its bottom roughly aligns with the grid's plane." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:79 msgid "" "You can toggle the model's visibility by clicking the eye icon next to the " "``Character`` or the ``Pivot`` nodes." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:84 #, fuzzy msgid "Save the scene as ``player.tscn``" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:86 msgid "" "With the nodes ready, we can almost get coding. But first, we need to define " "some input actions." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:90 #, fuzzy msgid "Creating input actions" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:92 msgid "" "To move the character, we will listen to the player's input, like pressing " "the arrow keys. In Godot, while we could write all the key bindings in code, " "there's a powerful system that allows you to assign a label to a set of keys " "and buttons. This simplifies our scripts and makes them more readable." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:97 msgid "" "This system is the Input Map. To access its editor, head to the *Project* " "menu and select *Project Settings*." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:100 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:391 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:89 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:61 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:92 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:55 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:57 #: ../../docs/community/asset_library/using_assetlib.rst:99 msgid "|image6|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:172 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:444 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:341 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:340 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:374 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:456 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:614 #: ../../docs/community/asset_library/using_assetlib.rst:193 msgid "image6" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:102 msgid "" "At the top, there are multiple tabs. Click on *Input Map*. This window " "allows you to add new actions at the top; they are your labels. In the " "bottom part, you can bind keys to these actions." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:106 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:396 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:101 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:66 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:191 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:74 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:61 #: ../../docs/community/asset_library/using_assetlib.rst:125 msgid "|image7|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:173 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:445 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:342 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:341 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:375 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:457 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:615 #: ../../docs/community/asset_library/using_assetlib.rst:194 msgid "image7" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:108 msgid "" "Godot projects come with some predefined actions designed for user interface " "design, which we could use here. But we're defining our own to support " "gamepads." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:111 msgid "" "We're going to name our actions ``move_left``, ``move_right``, " "``move_forward``, ``move_back``, and ``jump``." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:114 msgid "To add an action, write its name in the bar at the top and press Enter." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:116 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:402 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:224 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:72 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:196 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:108 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:66 #: ../../docs/community/asset_library/using_assetlib.rst:133 msgid "|image8|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:174 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:446 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:343 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:342 #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:376 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:458 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:616 #: ../../docs/community/asset_library/using_assetlib.rst:195 msgid "image8" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:118 #, fuzzy msgid "Create the following five actions:" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:120 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:407 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:229 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:77 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:169 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:71 #: ../../docs/community/asset_library/using_assetlib.rst:154 msgid "|image9|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:175 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:447 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:344 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:343 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:459 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:617 #: ../../docs/community/asset_library/using_assetlib.rst:196 msgid "image9" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:122 msgid "" "To bind a key or button to an action, click the \"+\" button to its right. " "Do this for ``move_left``. Press the left arrow key and click *OK*." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:127 msgid "Bind also the :kbd:`A` key, onto the action ``move_left``." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:129 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:103 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:202 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:100 #: ../../docs/community/asset_library/using_assetlib.rst:173 msgid "|image12|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:177 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:346 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:462 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:620 #: ../../docs/community/asset_library/using_assetlib.rst:199 msgid "image12" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:131 msgid "" "Let's now add support for a gamepad's left joystick. Click the \"+\" button " "again but this time, select *Manual Selection -> Joypad Axes*." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:136 msgid "Select the negative X axis of the left joystick." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:140 msgid "Leave the other values as default and press *OK*" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:144 msgid "" "If you want controllers to have different input actions, you should use the " "Devices option in Additional Options. Device 0 corresponds to the first " "plugged gamepad, Device 1 corresponds to the second plugged gamepad, and so " "on." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:146 msgid "" "Do the same for the other input actions. For example, bind the right arrow, " "D, and the left joystick's positive axis to ``move_right``. After binding " "all keys, your interface should look like this." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:150 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:128 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:312 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:137 msgid "|image15|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:178 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:349 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:465 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:623 msgid "image15" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:152 msgid "" "The final action to set up is the ``jump`` action. Bind the Space key and " "the gamepad's A button." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:155 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:133 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:317 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:148 msgid "|image16|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:179 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:350 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:466 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:624 msgid "image16" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:157 msgid "Your jump input action should look like this." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:159 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:145 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:335 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:159 msgid "|image18|" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:181 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:352 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:468 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:626 msgid "image18" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:161 msgid "" "That's all the actions we need for this game. You can use this menu to label " "any groups of keys and buttons in your projects." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:164 msgid "In the next part, we'll code and test the player's movement." msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:176 #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:449 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:345 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:461 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:619 #: ../../docs/community/asset_library/using_assetlib.rst:198 msgid "image11" msgstr "" #: ../../docs/getting_started/first_3d_game/02.player_input.rst:180 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:351 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:467 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:625 msgid "image17" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:6 msgid "Moving the player with code" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:8 msgid "" "It's time to code! We're going to use the input actions we created in the " "last part to move the character." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:11 msgid "" "Right-click the ``Player`` node and select *Attach Script* to add a new " "script to it. In the popup, set the *Template* to *Empty* before pressing " "the *Create* button." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:17 msgid "" "Let's start with the class's properties. We're going to define a movement " "speed, a fall acceleration representing gravity, and a velocity we'll use to " "move the character." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:52 msgid "" "These are common properties for a moving body. The ``target_velocity`` is a :" "ref:`3D vector ` combining a speed with a direction. Here, we " "define it as a property because we want to update and reuse its value across " "frames." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:58 msgid "" "The values are quite different from 2D code because distances are in meters. " "While in 2D, a thousand units (pixels) may only correspond to half of your " "screen's width, in 3D, it's a kilometer." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:62 msgid "" "Let's code the movement. We start by calculating the input direction vector " "using the global ``Input`` object, in ``_physics_process()``." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:112 msgid "" "Here, we're going to make all calculations using the ``_physics_process()`` " "virtual function. Like ``_process()``, it allows you to update the node " "every frame, but it's designed specifically for physics-related code like " "moving a kinematic or rigid body." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:119 msgid "" "To learn more about the difference between ``_process()`` and " "``_physics_process()``, see :ref:`doc_idle_and_physics_processing`." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:122 msgid "" "We start by initializing a ``direction`` variable to ``Vector3.ZERO``. Then, " "we check if the player is pressing one or more of the ``move_*`` inputs and " "update the vector's ``x`` and ``z`` components accordingly. These correspond " "to the ground plane's axes." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:127 msgid "" "These four conditions give us eight possibilities and eight possible " "directions." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:129 msgid "" "In case the player presses, say, both W and D simultaneously, the vector " "will have a length of about ``1.4``. But if they press a single key, it will " "have a length of ``1``. We want the vector's length to be consistent, and " "not move faster diagonally. To do so, we can call its ``normalized()`` " "method." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:159 msgid "" "Here, we only normalize the vector if the direction has a length greater " "than zero, which means the player is pressing a direction key." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:162 msgid "" "We compute the direction the ``$Pivot`` is looking by creating a :ref:`Basis " "` that looks in the ``direction`` direction." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:165 msgid "" "Then, we update the velocity. We have to calculate the ground velocity and " "the fall speed separately. Be sure to go back one tab so the lines are " "inside the ``_physics_process()`` function but outside the condition we just " "wrote above." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:214 msgid "" "The ``CharacterBody3D.is_on_floor()`` function returns ``true`` if the body " "collided with the floor in this frame. That's why we apply gravity to the " "``Player`` only while it is in the air." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:217 msgid "" "For the vertical velocity, we subtract the fall acceleration multiplied by " "the delta time every frame. This line of code will cause our character to " "fall in every frame, as long as it is not on or colliding with the floor." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:221 msgid "" "The physics engine can only detect interactions with walls, the floor, or " "other bodies during a given frame if movement and collisions happen. We will " "use this property later to code the jump." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:225 msgid "" "On the last line, we call ``CharacterBody3D.move_and_slide()`` which is a " "powerful method of the ``CharacterBody3D`` class that allows you to move a " "character smoothly. If it hits a wall midway through a motion, the engine " "will try to smooth it out for you. It uses the *velocity* value native to " "the :ref:`CharacterBody3D `" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:237 msgid "And that's all the code you need to move the character on the floor." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:239 msgid "Here is the complete ``Player.gd`` code for reference." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:341 msgid "Testing our player's movement" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:343 msgid "" "We're going to put our player in the ``Main`` scene to test it. To do so, we " "need to instantiate the player and then add a camera. Unlike in 2D, in 3D, " "you won't see anything if your viewport doesn't have a camera pointing at " "something." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:347 msgid "" "Save your ``Player`` scene and open the ``Main`` scene. You can click on the " "*Main* tab at the top of the editor to do so." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:352 msgid "" "If you closed the scene before, head to the *FileSystem* dock and double-" "click ``main.tscn`` to re-open it." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:355 msgid "" "To instantiate the ``Player``, right-click on the ``Main`` node and select " "*Instantiate Child Scene*." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:360 msgid "" "In the popup, double-click ``player.tscn``. The character should appear in " "the center of the viewport." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:364 #, fuzzy msgid "Adding a camera" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:366 msgid "" "Let's add the camera next. Like we did with our *Player*\\ 's *Pivot*, we're " "going to create a basic rig. Right-click on the ``Main`` node again and " "select *Add Child Node*. Create a new :ref:`Marker3D `, and " "name it ``CameraPivot``. Select ``CameraPivot`` and add a child node :ref:" "`Camera3D ` to it. Your scene tree should look like this." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:372 msgid "" "Notice the *Preview* checkbox that appears in the top-left when you have the " "*Camera* selected. You can click it to preview the in-game camera projection." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:377 msgid "" "We're going to use the *Pivot* to rotate the camera as if it was on a crane. " "Let's first split the 3D view to be able to freely navigate the scene and " "see what the camera sees." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:381 msgid "" "In the toolbar right above the viewport, click on *View*, then *2 " "Viewports*. You can also press :kbd:`Ctrl + 2` (:kbd:`Cmd + 2` on macOS)." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:384 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:91 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:197 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:95 #: ../../docs/community/asset_library/using_assetlib.rst:165 msgid "|image11|" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:388 msgid "" "On the bottom view, select your :ref:`Camera3D ` and turn on " "camera Preview by clicking the checkbox." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:393 msgid "" "In the top view, move the camera about ``19`` units on the Z axis (the blue " "one)." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:398 msgid "" "Here's where the magic happens. Select the *CameraPivot* and rotate it " "``-45`` degrees around the X axis (using the red circle). You'll see the " "camera move as if it was attached to a crane." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:404 msgid "" "You can run the scene by pressing :kbd:`F6` and press the arrow keys to move " "the character." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:409 msgid "" "We can see some empty space around the character due to the perspective " "projection. In this game, we're going to use an orthographic projection " "instead to better frame the gameplay area and make it easier for the player " "to read distances." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:414 msgid "" "Select the *Camera* again and in the *Inspector*, set the *Projection* to " "*Orthogonal* and the *Size* to ``19``. The character should now look flatter " "and the ground should fill the background." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:420 msgid "" "When using an orthogonal camera in Godot 4, directional shadow quality is " "dependent on the camera's *Far* value. The higher the *Far* value, the " "further away the camera will be able to see. However, higher *Far* values " "also decrease shadow quality as the shadow rendering has to cover a greater " "distance." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:426 msgid "" "If directional shadows look too blurry after switching to an orthogonal " "camera, decrease the camera's *Far* property to a lower value such as " "``100``. Don't decrease this *Far* property too much, or objects in the " "distance will start disappearing." msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:431 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:233 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:87 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:193 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:87 #: ../../docs/community/asset_library/using_assetlib.rst:160 msgid "|image10|" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:448 #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:345 #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:344 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:460 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:618 #: ../../docs/community/asset_library/using_assetlib.rst:197 msgid "image10" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:433 msgid "" "Test your scene and you should be able to move in all 8 directions and not " "glitch through the floor!" msgstr "" #: ../../docs/getting_started/first_3d_game/03.player_movement_code.rst:435 msgid "" "Ultimately, we have both player movement and the view in place. Next, we " "will work on the monsters." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:6 #, fuzzy msgid "Designing the mob scene" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:8 msgid "" "In this part, you're going to code the monsters, which we'll call mobs. In " "the next lesson, we'll spawn them randomly around the playable area." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:11 msgid "" "Let's design the monsters themselves in a new scene. The node structure is " "going to be similar to the ``player.tscn`` scene." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:14 msgid "" "Create a scene with, once again, a :ref:`CharacterBody3D " "` node as its root. Name it ``Mob``. Add a child " "node :ref:`Node3D `, name it ``Pivot``. And drag and drop the " "file ``mob.glb`` from the *FileSystem* dock onto the ``Pivot`` to add the " "monster's 3D model to the scene." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:21 msgid "You can rename the newly created ``mob`` node into ``Character``." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:26 msgid "" "We need a collision shape for our body to work. Right-click on the ``Mob`` " "node, the scene's root, and click *Add Child Node*." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:31 msgid "Add a :ref:`CollisionShape3D `." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:36 msgid "In the *Inspector*, assign a *BoxShape3D* to the *Shape* property." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:40 msgid "" "We should change its size to fit the 3D model better. You can do so " "interactively by clicking and dragging on the orange dots." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:43 msgid "" "The box should touch the floor and be a little thinner than the model. " "Physics engines work in such a way that if the player's sphere touches even " "the box's corner, a collision will occur. If the box is a little too big " "compared to the 3D model, you may die at a distance from the monster, and " "the game will feel unfair to the players." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:51 msgid "" "Notice that my box is taller than the monster. It is okay in this game " "because we're looking at the scene from above and using a fixed perspective. " "Collision shapes don't have to match the model exactly. It's the way the " "game feels when you test it that should dictate their form and size." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:57 msgid "Removing monsters off-screen" msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:59 msgid "" "We're going to spawn monsters at regular time intervals in the game level. " "If we're not careful, their count could increase to infinity, and we don't " "want that. Each mob instance has both a memory and a processing cost, and we " "don't want to pay for it when the mob is outside the screen." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:64 msgid "" "Once a monster leaves the screen, we don't need it anymore, so we should " "delete it. Godot has a node that detects when objects leave the screen, :ref:" "`VisibleOnScreenNotifier3D `, and we're " "going to use it to destroy our mobs." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:70 msgid "" "When you keep instancing an object, there's a technique you can use to avoid " "the cost of creating and destroying instances all the time called pooling. " "It consists of pre-creating an array of objects and reusing them over and " "over." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:75 msgid "" "When working with GDScript, you don't need to worry about this. The main " "reason to use pools is to avoid freezes with garbage-collected languages " "like C# or Lua. GDScript uses a different technique to manage memory, " "reference counting, which doesn't have that caveat. You can learn more about " "that here: :ref:`doc_gdscript_basics_memory_management`." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:81 msgid "" "Select the ``Mob`` node and add a child node :ref:`VisibleOnScreenNotifier3D " "`. Another box, pink this time, appears. " "When this box completely leaves the screen, the node will emit a signal." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:87 msgid "Resize it using the orange dots until it covers the entire 3D model." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:92 msgid "Coding the mob's movement" msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:94 msgid "" "Let's implement the monster's motion. We're going to do this in two steps. " "First, we'll write a script on the ``Mob`` that defines a function to " "initialize the monster. We'll then code the randomized spawn mechanism in " "the ``main.tscn`` scene and call the function from there." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:99 msgid "Attach a script to the ``Mob``." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:103 msgid "" "Here's the movement code to start with. We define two properties, " "``min_speed`` and ``max_speed``, to define a random speed range, which we " "will later use to define ``CharacterBody3D.velocity``." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:141 msgid "" "Similarly to the player, we move the mob every frame by calling the function " "``CharacterBody3D.move_and_slide()``. This time, we don't update the " "``velocity`` every frame; we want the monster to move at a constant speed " "and leave the screen, even if it were to hit an obstacle." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:146 msgid "" "We need to define another function to calculate the ``CharacterBody3D." "velocity``. This function will turn the monster towards the player and " "randomize both its angle of motion and its velocity." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:150 msgid "" "The function will take a ``start_position``,the mob's spawn position, and " "the ``player_position`` as its arguments." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:153 msgid "" "We position the mob at ``start_position`` and turn it towards the player " "using the ``look_at_from_position()`` method, and randomize the angle by " "rotating a random amount around the Y axis. Below, ``randf_range()`` outputs " "a random value between ``-PI / 4`` radians and ``PI / 4`` radians." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:183 msgid "" "We got a random position, now we need a ``random_speed``. ``randi_range()`` " "will be useful as it gives random int values, and we will use ``min_speed`` " "and ``max_speed``. ``random_speed`` is just an integer, and we just use it " "to multiply our ``CharacterBody3D.velocity``. After ``random_speed`` is " "applied, we rotate ``CharacterBody3D.velocity`` Vector3 towards the player." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:216 #, fuzzy msgid "Leaving the screen" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:218 msgid "" "We still have to destroy the mobs when they leave the screen. To do so, " "we'll connect our :ref:`VisibleOnScreenNotifier3D " "` node's ``screen_exited`` signal to the " "``Mob``." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:221 msgid "" "Head back to the 3D viewport by clicking on the *3D* label at the top of the " "editor. You can also press :kbd:`Ctrl + F2` (:kbd:`Alt + 2` on macOS)." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:226 msgid "" "Select the :ref:`VisibleOnScreenNotifier3D " "` node and on the right side of the " "interface, navigate to the *Node* dock. Double-click the ``screen_exited()`` " "signal." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:231 msgid "Connect the signal to the ``Mob``" msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:235 msgid "" "This will take you back to the script editor and add a new function for you, " "``_on_visible_on_screen_notifier_3d_screen_exited()``. From it, call the " "``queue_free()`` method. This function destroys the instance it's called on." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:254 msgid "" "Our monster is ready to enter the game! In the next part, you will spawn " "monsters in the game level." msgstr "" #: ../../docs/getting_started/first_3d_game/04.mob_scene.rst:257 msgid "Here is the complete ``Mob.gd`` script for reference." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:6 #, fuzzy msgid "Spawning monsters" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:8 msgid "" "In this part, we're going to spawn monsters along a path randomly. By the " "end, you will have monsters roaming the game board." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:13 msgid "" "Double-click on ``main.tscn`` in the *FileSystem* dock to open the ``Main`` " "scene." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:15 msgid "" "Before drawing the path, we're going to change the game resolution. Our game " "has a default window size of ``1152x648``. We're going to set it to " "``720x540``, a nice little box." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:19 #, fuzzy msgid "Go to *Project -> Project Settings*." msgstr "Uvod / Početak" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:23 msgid "" "In the left menu, navigate down to *Display -> Window*. On the right, set " "the *Width* to ``720`` and the *Height* to ``540``." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:29 #, fuzzy msgid "Creating the spawn path" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:31 msgid "" "Like you did in the 2D game tutorial, you're going to design a path and use " "a :ref:`PathFollow3D ` node to sample random locations " "on it." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:34 msgid "" "In 3D though, it's a bit more complicated to draw the path. We want it to be " "around the game view so monsters appear right outside the screen. But if we " "draw a path, we won't see it from the camera preview." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:38 msgid "" "To find the view's limits, we can use some placeholder meshes. Your viewport " "should still be split into two parts, with the camera preview at the bottom. " "If that isn't the case, press :kbd:`Ctrl + 2` (:kbd:`Cmd + 2` on macOS) to " "split the view into two. Select the :ref:`Camera3D ` node " "and click the *Preview* checkbox in the bottom viewport." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:47 msgid "Adding placeholder cylinders" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:49 msgid "" "Let's add the placeholder meshes. Add a new :ref:`Node3D ` as " "a child of the ``Main`` node and name it ``Cylinders``. We'll use it to " "group the cylinders. Select ``Cylinders`` and add a child node :ref:" "`MeshInstance3D `" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:54 msgid "In the *Inspector*, assign a *CylinderMesh* to the *Mesh* property." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:58 msgid "" "Set the top viewport to the top orthogonal view using the menu in the " "viewport's top-left corner. Alternatively, you can press the keypad's 7 key." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:63 msgid "" "The grid may be distracting. You can toggle it by going to the *View* menu " "in the toolbar and clicking *View Grid*." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:68 msgid "" "You now want to move the cylinder along the ground plane, looking at the " "camera preview in the bottom viewport. I recommend using grid snap to do so. " "You can toggle it by clicking the magnet icon in the toolbar or pressing Y." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:74 msgid "" "Move the cylinder so it's right outside the camera's view in the top-left " "corner." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:79 msgid "" "We're going to create copies of the mesh and place them around the game " "area. Press :kbd:`Ctrl + D` (:kbd:`Cmd + D` on macOS) to duplicate the node. " "You can also right-click the node in the *Scene* dock and select " "*Duplicate*. Move the copy down along the blue Z axis until it's right " "outside the camera's preview." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:84 msgid "" "Select both cylinders by pressing the :kbd:`Shift` key and clicking on the " "unselected one and duplicate them." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:89 msgid "Move them to the right by dragging the red X axis." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:93 msgid "" "They're a bit hard to see in white, aren't they? Let's make them stand out " "by giving them a new material." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:96 msgid "" "In 3D, materials define a surface's visual properties like its color, how it " "reflects light, and more. We can use them to change the color of a mesh." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:99 msgid "" "We can update all four cylinders at once. Select all the mesh instances in " "the *Scene* dock. To do so, you can click on the first one and Shift click " "on the last one." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:105 msgid "" "In the *Inspector*, expand the *Material* section and assign a :ref:" "`StandardMaterial3D ` to slot *0*." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:107 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:216 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:109 #: ../../docs/community/asset_library/using_assetlib.rst:180 msgid "|image13|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:347 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:463 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:621 #: ../../docs/community/asset_library/using_assetlib.rst:200 msgid "image13" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:111 msgid "" "Click the sphere icon to open the material resource. You get a preview of " "the material and a long list of sections filled with properties. You can use " "these to create all sorts of surfaces, from metal to rock or water." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:115 msgid "Expand the *Albedo* section." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:119 msgid "" "Set the color to something that contrasts with the background, like a bright " "orange." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:122 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:223 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:118 #: ../../docs/community/asset_library/using_assetlib.rst:127 msgid "|image14|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:348 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:464 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:622 #: ../../docs/community/asset_library/using_assetlib.rst:201 msgid "image14" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:124 msgid "" "We can now use the cylinders as guides. Fold them in the *Scene* dock by " "clicking the grey arrow next to them. Moving forward, you can also toggle " "their visibility by clicking the eye icon next to *Cylinders*." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:130 msgid "" "Add a child node :ref:`Path3D ` to ``Main`` node. In the " "toolbar, four icons appear. Click the *Add Point* tool, the icon with the " "green \"+\" sign." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:135 msgid "You can hover any icon to see a tooltip describing the tool." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:137 msgid "" "Click in the center of each cylinder to create a point. Then, click the " "*Close Curve* icon in the toolbar to close the path. If any point is a bit " "off, you can click and drag on it to reposition it." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:141 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:324 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:153 msgid "|image17|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:143 msgid "Your path should look like this." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:147 msgid "" "To sample random positions on it, we need a :ref:`PathFollow3D " "` node. Add a :ref:`PathFollow3D ` " "as a child of the ``Path3D``. Rename the two nodes to ``SpawnLocation`` and " "``SpawnPath``, respectively. It's more descriptive of what we'll use them " "for." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:151 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:344 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:166 msgid "|image19|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:353 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:469 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:627 msgid "image19" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:153 msgid "With that, we're ready to code the spawn mechanism." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:156 msgid "Spawning monsters randomly" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:158 msgid "Right-click on the ``Main`` node and attach a new script to it." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:160 msgid "" "We first export a variable to the *Inspector* so that we can assign ``mob." "tscn`` or any other monster to it." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:182 msgid "" "We want to spawn mobs at regular time intervals. To do this, we need to go " "back to the scene and add a timer. Before that, though, we need to assign " "the ``mob.tscn`` file to the ``mob_scene`` property above (otherwise it's " "null!)" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:186 msgid "" "Head back to the 3D screen and select the ``Main`` node. Drag ``mob.tscn`` " "from the *FileSystem* dock to the *Mob Scene* slot in the *Inspector*." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:189 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:350 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:170 msgid "|image20|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:354 #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:470 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:628 msgid "image20" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:191 msgid "" "Add a new :ref:`Timer ` node as a child of ``Main``. Name it " "``MobTimer``." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:193 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:174 msgid "|image21|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:355 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:629 msgid "image21" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:195 msgid "" "In the *Inspector*, set its *Wait Time* to ``0.5`` seconds and turn on " "*Autostart* so it automatically starts when we run the game." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:198 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:198 msgid "|image22|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:356 #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:630 msgid "image22" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:200 msgid "" "Timers emit a ``timeout`` signal every time they reach the end of their " "*Wait Time*. By default, they restart automatically, emitting the signal in " "a cycle. We can connect to this signal from the *Main* node to spawn " "monsters every ``0.5`` seconds." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:205 msgid "" "With the *MobTimer* still selected, head to the *Node* dock on the right, " "and double-click the ``timeout`` signal." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:208 msgid "|image23|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:357 msgid "image23" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:210 msgid "Connect it to the *Main* node." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:212 msgid "|image24|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:358 msgid "image24" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:214 msgid "" "This will take you back to the script, with a new empty " "``_on_mob_timer_timeout()`` function." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:217 msgid "Let's code the mob spawning logic. We're going to:" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:219 #, fuzzy msgid "Instantiate the mob scene." msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:220 msgid "Sample a random position on the spawn path." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:221 msgid "Get the player's position." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:222 msgid "" "Call the mob's ``initialize()`` method, passing it the random position and " "the player's position." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:224 msgid "Add the mob as a child of the *Main* node." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:266 msgid "" "Above, ``randf()`` produces a random value between ``0`` and ``1``, which is " "what the *PathFollow* node's ``progress_ratio`` expects: 0 is the start of " "the path, 1 is the end of the path. The path we have set is around the " "camera's viewport, so any random value between 0 and 1 is a random position " "alongside the edges of the viewport!" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:272 msgid "Here is the complete ``main.gd`` script so far, for reference." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:326 msgid "" "You can test the scene by pressing :kbd:`F6`. You should see the monsters " "spawn and move in a straight line." msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:329 msgid "|image25|" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:359 msgid "image25" msgstr "" #: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:331 msgid "" "For now, they bump and slide against one another when their paths cross. " "We'll address this in the next part." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:6 msgid "Jumping and squashing monsters" msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:8 msgid "" "In this part, we'll add the ability to jump and squash the monsters. In the " "next lesson, we'll make the player die when a monster hits them on the " "ground." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:11 #, fuzzy msgid "" "First, we have to change a few settings related to physics interactions. " "Enter the world of :ref:`physics layers " "`." msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:16 #, fuzzy msgid "Controlling physics interactions" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:18 msgid "" "Physics bodies have access to two complementary properties: layers and " "masks. Layers define on which physics layer(s) an object is." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:21 msgid "" "Masks control the layers that a body will listen to and detect. This affects " "collision detection. When you want two bodies to interact, you need at least " "one to have a mask corresponding to the other." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:25 msgid "If that's confusing, don't worry, we'll see three examples in a second." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:27 msgid "" "The important point is that you can use layers and masks to filter physics " "interactions, control performance, and remove the need for extra conditions " "in your code." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:31 msgid "" "By default, all physics bodies and areas are set to both layer and mask " "``1``. This means they all collide with each other." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:34 msgid "" "Physics layers are represented by numbers, but we can give them names to " "keep track of what's what." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:38 #, fuzzy msgid "Setting layer names" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:40 msgid "" "Let's give our physics layers a name. Go to *Project -> Project Settings*." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:44 msgid "" "In the left menu, navigate down to *Layer Names -> 3D Physics*. You can see " "a list of layers with a field next to each of them on the right. You can set " "their names there. Name the first three layers *player*, *enemies*, and " "*world*, respectively." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:51 msgid "Now, we can assign them to our physics nodes." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:54 msgid "Assigning layers and masks" msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:56 msgid "" "In the *Main* scene, select the ``Ground`` node. In the *Inspector*, expand " "the *Collision* section. There, you can see the node's layers and masks as a " "grid of buttons." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:62 msgid "" "The ground is part of the world, so we want it to be part of the third " "layer. Click the lit button to toggle **off** the first *Layer* and toggle " "**on** the third one. Then, toggle **off** the *Mask* by clicking on it." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:68 msgid "" "As mentioned before, the *Mask* property allows a node to listen to " "interaction with other physics objects, but we don't need it to have " "collisions. ``Ground`` doesn't need to listen to anything; it's just there " "to prevent creatures from falling." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:72 msgid "" "Note that you can click the \"...\" button on the right side of the " "properties to see a list of named checkboxes." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:77 msgid "" "Next up are the ``Player`` and the ``Mob``. Open ``player.tscn`` by double-" "clicking the file in the *FileSystem* dock." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:80 msgid "" "Select the *Player* node and set its *Collision -> Mask* to both \"enemies\" " "and \"world\". You can leave the default *Layer* property as it is, because " "the first layer is the \"player\" layer." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:86 msgid "" "Then, open the *Mob* scene by double-clicking on ``mob.tscn`` and select the " "``Mob`` node." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:89 msgid "" "Set its *Collision -> Layer* to \"enemies\" and unset its *Collision -> " "Mask*, leaving the mask empty." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:94 msgid "" "These settings mean the monsters will move through one another. If you want " "the monsters to collide with and slide against each other, turn **on** the " "\"enemies\" mask." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:100 msgid "" "The mobs don't need to mask the \"world\" layer because they only move on " "the XZ plane. We don't apply any gravity to them by design." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:104 msgid "Jumping" msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:106 msgid "" "The jumping mechanic itself requires only two lines of code. Open the " "*Player* script. We need a value to control the jump's strength and update " "``_physics_process()`` to code the jump." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:110 msgid "" "After the line that defines ``fall_acceleration``, at the top of the script, " "add the ``jump_impulse``." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:129 msgid "" "Inside ``_physics_process()``, add the following code before the " "``move_and_slide()`` codeblock." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:158 msgid "That's all you need to jump!" msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:160 msgid "" "The ``is_on_floor()`` method is a tool from the ``CharacterBody3D`` class. " "It returns ``true`` if the body collided with the floor in this frame. " "That's why we apply gravity to the *Player*: so we collide with the floor " "instead of floating over it like the monsters." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:165 msgid "" "If the character is on the floor and the player presses \"jump\", we " "instantly give them a lot of vertical speed. In games, you really want " "controls to be responsive and giving instant speed boosts like these, while " "unrealistic, feels great." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:170 msgid "" "Notice that the Y axis is positive upwards. That's unlike 2D, where the Y " "axis is positive downwards." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:174 #, fuzzy msgid "Squashing monsters" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:176 msgid "" "Let's add the squash mechanic next. We're going to make the character bounce " "over monsters and kill them at the same time." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:179 msgid "" "We need to detect collisions with a monster and to differentiate them from " "collisions with the floor. To do so, we can use Godot's :ref:`group " "` tagging feature." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:183 msgid "" "Open the scene ``mob.tscn`` again and select the *Mob* node. Go to the " "*Node* dock on the right to see a list of signals. The *Node* dock has two " "tabs: *Signals*, which you've already used, and *Groups*, which allows you " "to assign tags to nodes." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:188 msgid "" "Click on it to reveal a field where you can write a tag name. Enter \"mob\" " "in the field and click the *Add* button." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:193 msgid "" "An icon appears in the *Scene* dock to indicate the node is part of at least " "one group." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:198 msgid "" "We can now use the group from the code to distinguish collisions with " "monsters from collisions with the floor." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:202 msgid "Coding the squash mechanic" msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:204 msgid "Head back to the *Player* script to code the squash and bounce." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:206 msgid "" "At the top of the script, we need another property, ``bounce_impulse``. When " "squashing an enemy, we don't necessarily want the character to go as high up " "as when jumping." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:225 msgid "" "Then, after the **Jumping** codeblock we added above in " "``_physics_process()``, add the following loop. With ``move_and_slide()``, " "Godot makes the body move sometimes multiple times in a row to smooth out " "the character's motion. So we have to loop over all collisions that may have " "happened." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:230 msgid "" "In every iteration of the loop, we check if we landed on a mob. If so, we " "kill it and bounce." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:233 msgid "" "With this code, if no collisions occurred on a given frame, the loop won't " "run." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:291 msgid "That's a lot of new functions. Here's some more information about them." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:293 msgid "" "The functions ``get_slide_collision_count()`` and ``get_slide_collision()`` " "both come from the :ref:`CharacterBody3D ` class and " "are related to ``move_and_slide()``." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:297 msgid "" "``get_slide_collision()`` returns a :ref:" "`KinematicCollision3D` object that holds " "information about where and how the collision occurred. For example, we use " "its ``get_collider`` property to check if we collided with a \"mob\" by " "calling ``is_in_group()`` on it: ``collision.get_collider()." "is_in_group(\"mob\")``." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:305 msgid "" "The method ``is_in_group()`` is available on every :ref:`Node`." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:307 msgid "" "To check that we are landing on the monster, we use the vector dot product: " "``Vector3.UP.dot(collision.get_normal()) > 0.1``. The collision normal is a " "3D vector that is perpendicular to the plane where the collision occurred. " "The dot product allows us to compare it to the up direction." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:312 msgid "" "With dot products, when the result is greater than ``0``, the two vectors " "are at an angle of fewer than 90 degrees. A value higher than ``0.1`` tells " "us that we are roughly above the monster." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:316 msgid "" "After handling the squash and bounce logic, we terminate the loop early via " "the ``break`` statement to prevent further duplicate calls to ``mob." "squash()``, which may otherwise result in unintended bugs such as counting " "the score multiple times for one kill." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:320 msgid "" "We are calling one undefined function, ``mob.squash()``, so we have to add " "it to the Mob class." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:323 msgid "" "Open the script ``Mob.gd`` by double-clicking on it in the *FileSystem* " "dock. At the top of the script, we want to define a new signal named " "``squashed``. And at the bottom, you can add the squash function, where we " "emit the signal and destroy the mob." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:359 msgid "" "When using C#, Godot will create the appropriate events automatically for " "all Signals ending with `EventHandler`, see :ref:`C# Signals " "`." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:361 msgid "We will use the signal to add points to the score in the next lesson." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:363 msgid "" "With that, you should be able to kill monsters by jumping on them. You can " "press :kbd:`F5` to try the game and set ``main.tscn`` as your project's main " "scene." msgstr "" #: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:366 msgid "However, the player won't die yet. We'll work on that in the next part." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:6 #, fuzzy msgid "Killing the player" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:8 msgid "" "We can kill enemies by jumping on them, but the player still can't die. " "Let's fix this." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:11 msgid "" "We want to detect being hit by an enemy differently from squashing them. We " "want the player to die when they're moving on the floor, but not if they're " "in the air. We could use vector math to distinguish the two kinds of " "collisions. Instead, though, we will use an :ref:`Area3D ` " "node, which works well for hitboxes." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:18 msgid "Hitbox with the Area node" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:20 msgid "" "Head back to the ``player.tscn`` scene and add a new child node :ref:`Area3D " "`. Name it ``MobDetector`` Add a :ref:`CollisionShape3D " "` node as a child of it." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:26 msgid "In the *Inspector*, assign a cylinder shape to it." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:30 msgid "" "Here is a trick you can use to make the collisions only happen when the " "player is on the ground or close to it. You can reduce the cylinder's height " "and move it up to the top of the character. This way, when the player jumps, " "the shape will be too high up for the enemies to collide with it." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:38 msgid "" "You also want the cylinder to be wider than the sphere. This way, the player " "gets hit before colliding and being pushed on top of the monster's collision " "box." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:42 msgid "The wider the cylinder, the more easily the player will get killed." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:44 msgid "" "Next, select the ``MobDetector`` node again, and in the *Inspector*, turn " "**off** its *Monitorable* property. This makes it so other physics nodes " "cannot detect the area. The complementary *Monitoring* property allows it to " "detect collisions. Then, remove the *Collision -> Layer* and set the mask to " "the \"enemies\" layer." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:52 msgid "" "When areas detect a collision, they emit signals. We're going to connect one " "to the ``Player`` node. Select ``MobDetector`` and go to *Inspector*'s " "*Node* tab, double-click the ``body_entered`` signal and connect it to the " "``Player``" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:58 msgid "" "The *MobDetector* will emit ``body_entered`` when a :ref:`CharacterBody3D " "` or a :ref:`RigidBody3D ` node " "enters it. As it only masks the \"enemies\" physics layers, it will only " "detect the ``Mob`` nodes." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:62 msgid "" "Code-wise, we're going to do two things: emit a signal we'll later use to " "end the game and destroy the player. We can wrap these operations in a " "``die()`` function that helps us put a descriptive label on the code." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:105 msgid "" "Try the game again by pressing :kbd:`F5`. If everything is set up correctly, " "the character should die when an enemy runs into the collider. Note that " "without a ``Player``, the following line" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:118 msgid "gives error because there is no $Player!" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:120 msgid "" "Also note that the enemy colliding with the player and dying depends on the " "size and position of the ``Player`` and the ``Mob``\\ 's collision shapes. " "You may need to move them and resize them to achieve a tight game feel." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:125 msgid "Ending the game" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:127 msgid "" "We can use the ``Player``\\ 's ``hit`` signal to end the game. All we need " "to do is connect it to the ``Main`` node and stop the ``MobTimer`` in " "reaction." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:131 msgid "" "Open ``main.tscn``, select the ``Player`` node, and in the *Node* dock, " "connect its ``hit`` signal to the ``Main`` node." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:136 msgid "Get the timer, and stop it, in the ``_on_player_hit()`` function." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:152 msgid "" "If you try the game now, the monsters will stop spawning when you die, and " "the remaining ones will leave the screen." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:155 msgid "" "You can pat yourself in the back: you prototyped a complete 3D game, even if " "it's still a bit rough." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:158 msgid "" "From there, we'll add a score, the option to retry the game, and you'll see " "how you can make the game feel much more alive with minimalistic animations." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:163 msgid "Code checkpoint" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:165 msgid "" "Here are the complete scripts for the ``Main``, ``Mob``, and ``Player`` " "nodes, for reference. You can use them to compare and check your code." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:168 msgid "Starting with ``main.gd``." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:230 msgid "Next is ``Mob.gd``." msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:325 msgid "Finally, the longest script, ``Player.gd``:" msgstr "" #: ../../docs/getting_started/first_3d_game/07.killing_player.rst:524 msgid "See you in the next lesson to add the score and the retry option." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:6 msgid "Score and replay" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:8 msgid "" "In this part, we'll add the score, music playback, and the ability to " "restart the game." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:11 msgid "" "We have to keep track of the current score in a variable and display it on " "screen using a minimal interface. We will use a text label to do that." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:14 msgid "" "In the main scene, add a new child node :ref:`Control ` to " "``Main`` and name it ``UserInterface``. You will automatically be taken to " "the 2D screen, where you can edit your User Interface (UI)." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:18 msgid "Add a :ref:`Label ` node and name it ``ScoreLabel``" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:22 msgid "" "In the *Inspector*, set the *Label*'s *Text* to a placeholder like \"Score: " "0\"." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:26 msgid "" "Also, the text is white by default, like our game's background. We need to " "change its color to see it at runtime." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:29 msgid "" "Scroll down to *Theme Overrides*, and expand *Colors* and enable *Font " "Color* in order to tint the text to black (which contrasts well with the " "white 3D scene)" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:35 msgid "" "Finally, click and drag on the text in the viewport to move it away from the " "top-left corner." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:40 msgid "" "The ``UserInterface`` node allows us to group our UI in a branch of the " "scene tree and use a theme resource that will propagate to all its children. " "We'll use it to set our game's font." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:45 #, fuzzy msgid "Creating a UI theme" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:47 msgid "" "Once again, select the ``UserInterface`` node. In the *Inspector*, create a " "new theme resource in *Theme -> Theme*." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:52 msgid "" "Click on it to open the theme editor In the bottom panel. It gives you a " "preview of how all the built-in UI widgets will look with your theme " "resource." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:57 msgid "By default, a theme only has one property, the *Default Font*." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:61 msgid "" "You can add more properties to the theme resource to design complex user " "interfaces, but that is beyond the scope of this series. To learn more about " "creating and editing themes, see :ref:`doc_gui_skinning`." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:65 msgid "" "This one expects a font file like the ones you have on your computer. Two " "common font file formats are TrueType Font (TTF) and OpenType Font (OTF)." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:68 msgid "" "In the *FileSystem* dock, expand the ``fonts`` directory and click and drag " "the ``Montserrat-Medium.ttf`` file we included in the project onto the " "*Default Font*. The text will reappear in the theme preview." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:72 msgid "" "The text is a bit small. Set the *Default Font Size* to ``22`` pixels to " "increase the text's size." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:77 msgid "Keeping track of the score" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:79 msgid "" "Let's work on the score next. Attach a new script to the ``ScoreLabel`` and " "define the ``score`` variable." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:98 msgid "" "The score should increase by ``1`` every time we squash a monster. We can " "use their ``squashed`` signal to know when that happens. However, because we " "instantiate monsters from the code, we cannot connect the mob signal to the " "``ScoreLabel`` via the editor." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:102 msgid "" "Instead, we have to make the connection from the code every time we spawn a " "monster." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:105 msgid "" "Open the script ``main.gd``. If it's still open, you can click on its name " "in the script editor's left column." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:110 msgid "" "Alternatively, you can double-click the ``main.gd`` file in the *FileSystem* " "dock." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:113 msgid "" "At the bottom of the ``_on_mob_timer_timeout()`` function, add the following " "line:" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:133 msgid "" "This line means that when the mob emits the ``squashed`` signal, the " "``ScoreLabel`` node will receive it and call the function " "``_on_mob_squashed()``." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:136 msgid "" "Head back to the ``ScoreLabel.gd`` script to define the " "``_on_mob_squashed()`` callback function." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:139 msgid "There, we increment the score and update the displayed text." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:156 msgid "" "The second line uses the value of the ``score`` variable to replace the " "placeholder ``%s``. When using this feature, Godot automatically converts " "values to string text, which is convenient when outputting text in labels or " "when using the ``print()`` function." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:163 msgid "" "You can learn more about string formatting here: :ref:`doc_gdscript_printf`. " "In C#, consider using `string interpolation with \"$\" `_." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:166 msgid "" "You can now play the game and squash a few enemies to see the score increase." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:173 msgid "" "In a complex game, you may want to completely separate your user interface " "from the game world. In that case, you would not keep track of the score on " "the label. Instead, you may want to store it in a separate, dedicated " "object. But when prototyping or when your project is simple, it is fine to " "keep your code simple. Programming is always a balancing act." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:180 #, fuzzy msgid "Retrying the game" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:182 msgid "" "We'll now add the ability to play again after dying. When the player dies, " "we'll display a message on the screen and wait for input." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:185 msgid "" "Head back to the ``main.tscn`` scene, select the ``UserInterface`` node, add " "a child node :ref:`ColorRect `, and name it ``Retry``. This " "node fills a rectangle with a uniform color and will serve as an overlay to " "darken the screen." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:190 msgid "" "To make it span over the whole viewport, you can use the *Anchor Preset* " "menu in the toolbar." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:195 msgid "Open it and apply the *Full Rect* command." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:199 msgid "" "Nothing happens. Well, almost nothing; only the four green pins move to the " "corners of the selection box." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:204 msgid "" "This is because UI nodes (all the ones with a green icon) work with anchors " "and margins relative to their parent's bounding box. Here, the " "``UserInterface`` node has a small size and the ``Retry`` one is limited by " "it." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:208 msgid "" "Select the ``UserInterface`` and apply *Anchor Preset -> Full Rect* to it as " "well. The ``Retry`` node should now span the whole viewport." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:211 msgid "" "Let's change its color so it darkens the game area. Select ``Retry`` and in " "the *Inspector*, set its *Color* to something both dark and transparent. To " "do so, in the color picker, drag the *A* slider to the left. It controls the " "color's Alpha channel, that is to say, its opacity/transparency." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:218 msgid "" "Next, add a :ref:`Label ` as a child of ``Retry`` and give it " "the *Text* \"Press Enter to retry.\" To move it and anchor it in the center " "of the screen, apply *Anchor Preset -> Center* to it." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:226 msgid "Coding the retry option" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:228 msgid "" "We can now head to the code to show and hide the ``Retry`` node when the " "player dies and plays again." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:231 msgid "" "Open the script ``main.gd``. First, we want to hide the overlay at the start " "of the game. Add this line to the ``_ready()`` function." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:247 msgid "Then, when the player gets hit, we show the overlay." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:264 msgid "" "Finally, when the ``Retry`` node is visible, we need to listen to the " "player's input and restart the game if they press enter. To do this, we use " "the built-in ``_unhandled_input()`` callback, which is triggered on any " "input." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:268 msgid "" "If the player pressed the predefined ``ui_accept`` input action and " "``Retry`` is visible, we reload the current scene." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:290 msgid "" "The function ``get_tree()`` gives us access to the global :ref:`SceneTree " "` object, which allows us to reload and restart the current " "scene." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:295 msgid "Adding music" msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:297 msgid "" "To add music that plays continuously in the background, we're going to use " "another feature in Godot: :ref:`autoloads `." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:300 msgid "" "To play audio, all you need to do is add an :ref:`AudioStreamPlayer " "` node to your scene and attach an audio file to " "it. When you start the scene, it can play automatically. However, when you " "reload the scene, like we do to play again, the audio nodes are also reset, " "and the music starts back from the beginning." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:305 msgid "" "You can use the autoload feature to have Godot load a node or a scene " "automatically at the start of the game, outside the current scene. You can " "also use it to create globally accessible objects." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:309 msgid "" "Create a new scene by going to the *Scene* menu and clicking *New Scene* or " "by using the *+* icon next to your currently opened scene." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:314 msgid "" "Click the *Other Node* button to create an :ref:`AudioStreamPlayer " "` and rename it to ``MusicPlayer``." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:319 msgid "" "We included a music soundtrack in the ``art/`` directory, ``House In a " "Forest Loop.ogg``. Click and drag it onto the *Stream* property in the " "*Inspector*. Also, turn on *Autoplay* so the music plays automatically at " "the start of the game." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:326 msgid "Save the scene as ``MusicPlayer.tscn``." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:328 msgid "" "We have to register it as an autoload. Head to the *Project -> Project " "Settings…* menu and click on the *Autoload* tab." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:331 msgid "" "In the *Path* field, you want to enter the path to your scene. Click the " "folder icon to open the file browser and double-click on ``MusicPlayer." "tscn``. Then, click the *Add* button on the right to register the node." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:337 msgid "" "``MusicPlayer.tscn`` now loads into any scene you open or play. So if you " "run the game now, the music will play automatically in any scene." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:340 msgid "" "Before we wrap up this lesson, here's a quick look at how it works under the " "hood. When you run the game, your *Scene* dock changes to give you two tabs: " "*Remote* and *Local*." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:346 msgid "" "The *Remote* tab allows you to visualize the node tree of your running game. " "There, you will see the *Main* node and everything the scene contains and " "the instantiated mobs at the bottom." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:352 msgid "" "At the top are the autoloaded ``MusicPlayer`` and a *root* node, which is " "your game's viewport." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:355 msgid "" "And that does it for this lesson. In the next part, we'll add an animation " "to make the game both look and feel much nicer." msgstr "" #: ../../docs/getting_started/first_3d_game/08.score_and_replay.rst:358 msgid "Here is the complete ``main.gd`` script for reference." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:6 #, fuzzy msgid "Character animation" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:8 msgid "" "In this final lesson, we'll use Godot's built-in animation tools to make our " "characters float and flap. You'll learn to design animations in the editor " "and use code to make your game feel alive." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:14 #, fuzzy msgid "We'll start with an introduction to using the animation editor." msgstr "Uvod" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:17 #, fuzzy msgid "Using the animation editor" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:19 msgid "" "The engine comes with tools to author animations in the editor. You can then " "use the code to play and control them at runtime." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:22 msgid "" "Open the player scene, select the ``Player`` node, and add an :ref:" "`AnimationPlayer ` node." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:24 msgid "The *Animation* dock appears in the bottom panel." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:28 msgid "" "It features a toolbar and the animation drop-down menu at the top, a track " "editor in the middle that's currently empty, and filter, snap, and zoom " "options at the bottom." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:32 msgid "Let's create an animation. Click on *Animation -> New*." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:36 msgid "Name the animation \"float\"." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:40 msgid "" "Once you've created the animation, the timeline appears with numbers " "representing time in seconds." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:45 msgid "" "We want the animation to start playback automatically at the start of the " "game. Also, it should loop." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:48 msgid "" "To do so, you can click the button with an \"A+\" icon in the animation " "toolbar and the looping arrows, respectively." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:53 msgid "" "You can also pin the animation editor by clicking the pin icon in the top-" "right. This prevents it from folding when you click on the viewport and " "deselect the nodes." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:59 msgid "" "Set the animation duration to ``1.2`` seconds in the top-right of the dock." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:63 msgid "" "You should see the gray ribbon widen a bit. It shows you the start and end " "of your animation and the vertical blue line is your time cursor." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:68 msgid "" "You can click and drag the slider in the bottom-right to zoom in and out of " "the timeline." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:74 msgid "The float animation" msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:76 msgid "" "With the animation player node, you can animate most properties on as many " "nodes as you need. Notice the key icon next to properties in the " "*Inspector*. You can click any of them to create a keyframe, a time and " "value pair for the corresponding property. The keyframe gets inserted where " "your time cursor is in the timeline." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:82 msgid "" "Let's insert our first keys. Here, we will animate both the position and the " "rotation of the ``Character`` node." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:85 msgid "" "Select the ``Character`` and in the *Inspector* expand the *Transform* " "section. Click the key icon next to *Position*, and *Rotation*." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:91 msgid "" "For this tutorial, just create RESET Track(s) which is the default choice" msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:93 msgid "" "Two tracks appear in the editor with a diamond icon representing each " "keyframe." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:97 msgid "" "You can click and drag on the diamonds to move them in time. Move the " "position key to ``0.3`` seconds and the rotation key to ``0.1`` seconds." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:102 msgid "" "Move the time cursor to ``0.5`` seconds by clicking and dragging on the gray " "timeline." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:107 msgid "" "In the *Inspector*, set the *Position*'s *Y* axis to ``0.65`` meters and the " "*Rotation*' *X* axis to ``8``." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:111 msgid "Create a keyframe for both properties" msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:115 msgid "" "Now, move the position keyframe to ``0.7`` seconds by dragging it on the " "timeline." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:122 msgid "" "A lecture on the principles of animation is beyond the scope of this " "tutorial. Just note that you don't want to time and space everything evenly. " "Instead, animators play with timing and spacing, two core animation " "principles. You want to offset and contrast in your character's motion to " "make them feel alive." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:128 msgid "" "Move the time cursor to the end of the animation, at ``1.2`` seconds. Set " "the Y position to about ``0.35`` and the X rotation to ``-9`` degrees. Once " "again, create a key for both properties." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:134 msgid "" "You can preview the result by clicking the play button or pressing :kbd:" "`Shift + D`. Click the stop button or press :kbd:`S` to stop playback." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:139 msgid "" "You can see that the engine interpolates between your keyframes to produce a " "continuous animation. At the moment, though, the motion feels very robotic. " "This is because the default interpolation is linear, causing constant " "transitions, unlike how living things move in the real world." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:144 msgid "We can control the transition between keyframes using easing curves." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:146 msgid "" "Click and drag around the first two keys in the timeline to box select them." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:150 msgid "" "You can edit the properties of both keys simultaneously in the *Inspector*, " "where you can see an *Easing* property." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:155 msgid "" "Click and drag on the curve, pulling it towards the left. This will make it " "ease-out, that is to say, transition fast initially and slow down as the " "time cursor reaches the next keyframe." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:161 msgid "" "Play the animation again to see the difference. The first half should " "already feel a bit bouncier." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:164 msgid "Apply an ease-out to the second keyframe in the rotation track." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:168 msgid "" "Do the opposite for the second position keyframe, dragging it to the right." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:172 msgid "Your animation should look something like this." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:178 msgid "" "Animations update the properties of the animated nodes every frame, " "overriding initial values. If we directly animated the *Player* node, it " "would prevent us from moving it in code. This is where the *Pivot* node " "comes in handy: even though we animated the *Character*, we can still move " "and rotate the *Pivot* and layer changes on top of the animation in a script." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:185 msgid "If you play the game, the player's creature will now float!" msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:187 msgid "" "If the creature is a little too close to the floor, you can move the " "``Pivot`` up to offset it." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:191 #, fuzzy msgid "Controlling the animation in code" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:193 msgid "" "We can use code to control the animation playback based on the player's " "input. Let's change the animation speed when the character is moving." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:196 msgid "Open the ``Player``'s script by clicking the script icon next to it." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:200 msgid "" "In ``_physics_process()``, after the line where we check the ``direction`` " "vector, add the following code." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:230 msgid "" "This code makes it so when the player moves, we multiply the playback speed " "by ``4``. When they stop, we reset it to normal." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:233 msgid "" "We mentioned that the ``Pivot`` could layer transforms on top of the " "animation. We can make the character arc when jumping using the following " "line of code. Add it at the end of ``_physics_process()``." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:254 #, fuzzy msgid "Animating the mobs" msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:256 msgid "" "Here's another nice trick with animations in Godot: as long as you use a " "similar node structure, you can copy them to different scenes." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:259 msgid "" "For example, both the ``Mob`` and the ``Player`` scenes have a ``Pivot`` and " "a ``Character`` node, so we can reuse animations between them." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:262 msgid "" "Open the *Player* scene, select the AnimationPlayer node and open the " "\"float\" animation. Next, click on **Animation > Copy**. Then open ``mob." "tscn``, create an AnimationPlayer child node and select it. Click " "**Animation > Paste** and make sure that the button with an \"A+\" icon " "(Autoplay on Load) and the looping arrows (Animation looping) are also " "turned on in the animation editor in the bottom panel. That's it; all " "monsters will now play the float animation." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:269 msgid "" "We can change the playback speed based on the creature's ``random_speed``. " "Open the *Mob*'s script and at the end of the ``initialize()`` function, add " "the following line." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:288 msgid "And with that, you finished coding your first complete 3D game." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:290 msgid "**Congratulations**!" msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:292 msgid "" "In the next part, we'll quickly recap what you learned and give you some " "links to keep learning more. But for now, here are the complete ``Player." "gd`` and ``Mob.gd`` so you can check your code against them." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:296 msgid "Here's the *Player* script." msgstr "" #: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:509 msgid "And the *Mob*'s script." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:6 msgid "Going further" msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:8 msgid "" "You can pat yourself on the back for having completed your first 3D game " "with Godot." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:11 msgid "" "In this series, we went over a wide range of techniques and editor features. " "Hopefully, you've witnessed how intuitive Godot's scene system can be and " "learned a few tricks you can apply in your projects." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:15 msgid "" "But we just scratched the surface: Godot has a lot more in store for you to " "save time creating games. And you can learn all that by browsing the " "documentation." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:18 msgid "" "Where should you begin? Below, you'll find a few pages to start exploring " "and build upon what you've learned so far." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:21 #, fuzzy msgid "" "But before that, here's a link to download a completed version of the " "project: ``_." msgstr "" "Uz ovu dokumentaciju takođe možete pogledati različite Godo demo projekte " "`Godot demo projects `_." #: ../../docs/getting_started/first_3d_game/going_further.rst:25 msgid "Exploring the manual" msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:27 msgid "" "The manual is your ally whenever you have a doubt or you're curious about a " "feature. It does not contain tutorials about specific game genres or " "mechanics. Instead, it explains how Godot works in general. In it, you will " "find information about 2D, 3D, physics, rendering and performance, and much " "more." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:32 msgid "Here are the sections we recommend you to explore next:" msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:34 msgid "" "Read the :ref:`Scripting section ` to learn " "essential programming features you'll use in every project." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:36 msgid "" "The :ref:`3D ` and :ref:`Physics ` sections will teach you more about 3D game creation in the engine." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:38 msgid "" ":ref:`Inputs ` is another important one for any " "game project." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:40 msgid "" "You can start with these or, if you prefer, look at the sidebar menu on the " "left and pick your options." msgstr "" #: ../../docs/getting_started/first_3d_game/going_further.rst:43 msgid "" "We hope you enjoyed this tutorial series, and we're looking forward to " "seeing what you achieve using Godot." msgstr "" #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:6 msgid "" "This series is a collection of best practices to help you work efficiently " "with Godot." msgstr "" #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:9 msgid "" "Godot allows for a great amount of flexibility in how you structure a " "project's codebase and break it down into scenes. Each approach has its pros " "and cons, and they can be hard to weigh until you've worked with the engine " "for long enough." msgstr "" #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:13 msgid "" "There are always many ways to structure your code and solve specific " "programming problems. It would be impossible to cover them all here." msgstr "" #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:16 msgid "" "That is why each article starts from a real-world problem. We will break " "down each problem in fundamental questions, suggest solutions, analyze the " "pros and cons of each option, and highlight the best course of action for " "the problem at hand." msgstr "" #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:20 msgid "" "You should start by reading :ref:`doc_what_are_godot_classes`. It explains " "how Godot's nodes and scenes relate to classes and objects in other Object-" "Oriented programming languages. It will help you make sense of the rest of " "the series." msgstr "" #: ../../docs/tutorials/best_practices/introduction_best_practices.rst:26 msgid "" "The best practices in Godot rely on Object-Oriented design principles. We " "use tools like the `single responsibility `_ principle and `encapsulation `_." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:4 msgid "Applying object-oriented principles in Godot" msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:6 msgid "" "The engine offers two main ways to create reusable objects: scripts and " "scenes. Neither of these technically define classes under the hood." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:9 msgid "" "Still, many best practices using Godot involve applying object-oriented " "programming principles to the scripts and scenes that compose your game. " "That is why it's useful to understand how we can think of them as classes." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:13 msgid "" "This guide briefly explains how scripts and scenes work in the engine's core " "to help you understand how they work under the hood." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:17 msgid "How scripts work in the engine" msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:19 msgid "" "The engine provides built-in classes like :ref:`Node `. You can " "extend those to create derived types using a script." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:22 msgid "" "These scripts are not technically classes. Instead, they are resources that " "tell the engine a sequence of initializations to perform on one of the " "engine's built-in classes." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:25 msgid "" "Godot's internal classes have methods that register a class's data with a :" "ref:`ClassDB `. This database provides runtime access to " "class information. ``ClassDB`` contains information about classes like:" msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:29 msgid "Properties." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:30 msgid "Methods." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:31 msgid "Constants." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:32 msgid "Signals." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:34 msgid "" "This ``ClassDB`` is what objects check against when performing an operation " "like accessing a property or calling a method. It checks the database's " "records and the object's base types' records to see if the object supports " "the operation." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:38 msgid "" "Attaching a :ref:`Script ` to your object extends the methods, " "properties, and signals available from the ``ClassDB``." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:43 msgid "" "Even scripts that don't use the ``extends`` keyword implicitly inherit from " "the engine's base :ref:`RefCounted ` class. As a result, " "you can instantiate scripts without the ``extends`` keyword from code. Since " "they extend ``RefCounted`` though, you cannot attach them to a :ref:`Node " "`." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:51 msgid "" "The behavior of scenes has many similarities to classes, so it can make " "sense to think of a scene as a class. Scenes are reusable, instantiable, and " "inheritable groups of nodes. Creating a scene is similar to having a script " "that creates nodes and adds them as children using ``add_child()``." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:55 msgid "" "We often pair a scene with a scripted root node that makes use of the " "scene's nodes. As such, the script extends the scene by adding behavior " "through imperative code." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:58 msgid "The content of a scene helps to define:" msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:60 msgid "What nodes are available to the script." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:61 msgid "How they are organized." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:62 msgid "How they are initialized." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:63 msgid "What signal connections they have with each other." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:65 msgid "" "Why is any of this important to scene organization? Because instances of " "scenes *are* objects. As a result, many object-oriented principles that " "apply to written code also apply to scenes: single responsibility, " "encapsulation, and others." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:69 msgid "" "The scene is *always an extension of the script attached to its root node*, " "so you can interpret it as part of a class." msgstr "" #: ../../docs/tutorials/best_practices/what_are_godot_classes.rst:72 msgid "" "Most of the techniques explained in this best practices series build on this " "point." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:4 msgid "Scene organization" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:6 msgid "" "This article covers topics related to the effective organization of scene " "content. Which nodes should one use? Where should one place them? How should " "they interact?" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:11 msgid "How to build relationships effectively" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:13 msgid "" "When Godot users begin crafting their own scenes, they often run into the " "following problem:" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:16 msgid "" "They create their first scene and fill it with content only to eventually " "end up saving branches of their scene into separate scenes as the nagging " "feeling that they should split things up starts to accumulate. However, they " "then notice that the hard references they were able to rely on before are no " "longer possible. Re-using the scene in multiple places creates issues " "because the node paths do not find their targets and signal connections " "established in the editor break." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:24 msgid "" "To fix these problems, one must instantiate the sub-scenes without them " "requiring details about their environment. One needs to be able to trust " "that the sub-scene will create itself without being picky about how one uses " "it." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:29 msgid "" "One of the biggest things to consider in OOP is maintaining focused, " "singular-purpose classes with `loose coupling `_ to other parts of the codebase. This keeps the size of " "objects small (for maintainability) and improves their reusability." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:35 msgid "" "These OOP best practices have *several* implications for best practices in " "scene structure and script usage." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:38 msgid "" "**If at all possible, one should design scenes to have no dependencies.** " "That is, one should create scenes that keep everything they need within " "themselves." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:42 msgid "" "If a scene must interact with an external context, experienced developers " "recommend the use of `Dependency Injection `_. This technique involves having a high-level API " "provide the dependencies of the low-level API. Why do this? Because classes " "which rely on their external environment can inadvertently trigger bugs and " "unexpected behavior." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:49 msgid "" "To do this, one must expose data and then rely on a parent context to " "initialize it:" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:52 msgid "" "Connect to a signal. Extremely safe, but should be used only to \"respond\" " "to behavior, not start it. By convention, signal names are usually past-" "tense verbs like \"entered\", \"skill_activated\", or \"item_collected\"." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:73 msgid "Call a method. Used to start behavior." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:92 msgid "" "Initialize a :ref:`Callable ` property. Safer than a method " "as ownership of the method is unnecessary. Used to start behavior." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:112 msgid "Initialize a Node or other Object reference." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:131 msgid "Initialize a NodePath." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:150 msgid "" "These options hide the points of access from the child node. This in turn " "keeps the child **loosely coupled** to its environment. One can reuse it in " "another context without any extra changes to its API." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:156 msgid "" "Although the examples above illustrate parent-child relationships, the same " "principles apply towards all object relations. Nodes which are siblings " "should only be aware of their hierarchies while an ancestor mediates their " "communications and references." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:203 msgid "" "The same principles also apply to non-Node objects that maintain " "dependencies on other objects. Whichever object actually owns the objects " "should manage the relationships between them." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:209 msgid "" "One should favor keeping data in-house (internal to a scene) though as " "placing a dependency on an external context, even a loosely coupled one, " "still means that the node will expect something in its environment to be " "true. The project's design philosophies should prevent this from happening. " "If not, the code's inherent liabilities will force developers to use " "documentation to keep track of object relations on a microscopic scale; this " "is otherwise known as development hell. Writing code that relies on external " "documentation for one to use it safely is error-prone by default." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:218 msgid "" "To avoid creating and maintaining such documentation, one converts the " "dependent node (\"child\" above) into a tool script that implements " "``_get_configuration_warnings()``. Returning a non-empty PackedStringArray " "from it will make the Scene dock generate a warning icon with the string(s) " "as a tooltip by the node. This is the same icon that appears for nodes such " "as the :ref:`Area2D ` node when it has no child :ref:" "`CollisionShape2D ` nodes defined. The editor then " "self-documents the scene through the script code. No content duplication via " "documentation is necessary." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:229 msgid "" "A GUI like this can better inform project users of critical information " "about a Node. Does it have external dependencies? Have those dependencies " "been satisfied? Other programmers, and especially designers and writers, " "will need clear instructions in the messages telling them what to do to " "configure it." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:234 msgid "" "So, why does all this complex switcheroo work? Well, because scenes operate " "best when they operate alone. If unable to work alone, then working with " "others anonymously (with minimal hard dependencies, i.e. loose coupling) is " "the next best thing. Inevitably, changes may need to be made to a class and " "if these changes cause it to interact with other scenes in unforeseen ways, " "then things will start to break down. The whole point of all this " "indirection is to avoid ending up in a situation where changing one class " "results in adversely effecting other classes dependent on it." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:243 msgid "" "Scripts and scenes, as extensions of engine classes, should abide by *all* " "OOP principles. Examples include..." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:246 msgid "`SOLID `_" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:247 msgid "`DRY `_" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:248 msgid "`KISS `_" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:249 msgid "`YAGNI `_" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:252 msgid "Choosing a node tree structure" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:254 msgid "" "So, a developer starts work on a game only to stop at the vast possibilities " "before them. They might know what they want to do, what systems they want to " "have, but *where* to put them all? Well, how one goes about making their " "game is always up to them. One can construct node trees in countless ways. " "But, for those who are unsure, this helpful guide can give them a sample of " "a decent structure to start with." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:261 msgid "" "A game should always have a sort of \"entry point\"; somewhere the developer " "can definitively track where things begin so that they can follow the logic " "as it continues elsewhere. This place also serves as a bird's eye view of " "all of the other data and logic in the program. For traditional " "applications, this would be the \"main\" function. In this case, it would be " "a Main node." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:267 #: ../../docs/tutorials/best_practices/scene_organization.rst:278 msgid "Node \"Main\" (main.gd)" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:269 msgid "" "The ``main.gd`` script would then serve as the primary controller of one's " "game." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:272 msgid "" "Then one has their actual in-game \"World\" (a 2D or 3D one). This can be a " "child of Main. In addition, one will need a primary GUI for their game that " "manages the various menus and widgets the project needs." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:277 msgid "Node2D/Node3D \"World\" (game_world.gd)" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:278 msgid "Control \"GUI\" (gui.gd)" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:280 msgid "" "When changing levels, one can then swap out the children of the \"World\" " "node. :ref:`Changing scenes manually ` gives " "users full control over how their game world transitions." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:284 msgid "" "The next step is to consider what gameplay systems one's project requires. " "If one has a system that..." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:287 msgid "tracks all of its data internally" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:288 msgid "should be globally accessible" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:289 msgid "should exist in isolation" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:291 msgid "" "... then one should create an :ref:`autoload 'singleton' node " "`." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:295 msgid "" "For smaller games, a simpler alternative with less control would be to have " "a \"Game\" singleton that simply calls the :ref:`SceneTree." "change_scene_to_file() ` method " "to swap out the main scene's content. This structure more or less keeps the " "\"World\" as the main game node." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:301 msgid "" "Any GUI would need to also be a singleton; be a transitory part of the " "\"World\"; or be manually added as a direct child of the root. Otherwise, " "the GUI nodes would also delete themselves during scene transitions." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:306 msgid "" "If one has systems that modify other systems' data, one should define those " "as their own scripts or scenes rather than autoloads. For more information " "on the reasons, please see the :ref:`Autoloads versus regular nodes " "` documentation." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:312 msgid "" "Each subsystem within one's game should have its own section within the " "SceneTree. One should use parent-child relationships only in cases where " "nodes are effectively elements of their parents. Does removing the parent " "reasonably mean that one should also remove the children? If not, then it " "should have its own place in the hierarchy as a sibling or some other " "relation." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:320 msgid "" "In some cases, one needs these separated nodes to *also* position themselves " "relative to each other. One can use the :ref:`RemoteTransform " "` / :ref:`RemoteTransform2D " "` nodes for this purpose. They will allow a target " "node to conditionally inherit selected transform elements from the Remote\\* " "node. To assign the ``target`` :ref:`NodePath `, use one of " "the following:" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:328 msgid "" "A reliable third party, likely a parent node, to mediate the assignment." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:329 msgid "" "A group, to easily pull a reference to the desired node (assuming there will " "only ever be one of the targets)." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:332 msgid "" "When should one do this? Well, this is subjective. The dilemma arises when " "one must micro-manage when a node must move around the SceneTree to preserve " "itself. For example..." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:336 msgid "Add a \"player\" node to a \"room\"." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:337 msgid "Need to change rooms, so one must delete the current room." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:338 msgid "" "Before the room can be deleted, one must preserve and/or move the player." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:340 msgid "Is memory a concern?" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:342 msgid "" "If not, one can just create the two rooms, move the player and delete the " "old one. No problem." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:345 msgid "If so, one will need to..." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:347 msgid "Move the player somewhere else in the tree." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:348 msgid "Delete the room." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:349 msgid "Instantiate and add the new room." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:350 msgid "Re-add the player." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:352 msgid "" "The issue is that the player here is a \"special case\"; one where the " "developers must *know* that they need to handle the player this way for the " "project. As such, the only way to reliably share this information as a team " "is to *document* it. Keeping implementation details in documentation however " "is dangerous. It's a maintenance burden, strains code readability, and " "bloats the intellectual content of a project unnecessarily." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:359 msgid "" "In a more complex game with larger assets, it can be a better idea to simply " "keep the player somewhere else in the SceneTree entirely. This results in:" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:362 msgid "More consistency." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:363 msgid "No \"special cases\" that must be documented and maintained somewhere." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:364 msgid "" "No opportunity for errors to occur because these details are not accounted " "for." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:367 msgid "" "In contrast, if one ever needs to have a child node that does *not* inherit " "the transform of their parent, one has the following options:" msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:370 msgid "" "The **declarative** solution: place a :ref:`Node ` in between " "them. As nodes with no transform, Nodes will not pass along such information " "to their children." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:373 msgid "" "The **imperative** solution: Use the ``top_level`` property for the :ref:" "`CanvasItem ` or :ref:`Node3D " "` node. This will make the node ignore its " "inherited transform." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:380 msgid "" "If building a networked game, keep in mind which nodes and gameplay systems " "are relevant to all players versus those just pertinent to the authoritative " "server. For example, users do not all need to have a copy of every players' " "\"PlayerController\" logic. Instead, they need only their own. As such, " "keeping these in a separate branch from the \"world\" can help simplify the " "management of game connections and the like." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:387 msgid "" "The key to scene organization is to consider the SceneTree in relational " "terms rather than spatial terms. Are the nodes dependent on their parent's " "existence? If not, then they can thrive all by themselves somewhere else. If " "they are dependent, then it stands to reason that they should be children of " "that parent (and likely part of that parent's scene if they aren't already)." msgstr "" #: ../../docs/tutorials/best_practices/scene_organization.rst:393 msgid "" "Does this mean nodes themselves are components? Not at all. Godot's node " "trees form an aggregation relationship, not one of composition. But while " "one still has the flexibility to move nodes around, it is still best when " "such moves are unnecessary by default." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:4 msgid "When to use scenes versus scripts" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:6 msgid "" "We've already covered how scenes and scripts are different. Scripts define " "an engine class extension with imperative code, scenes with declarative code." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:10 msgid "" "Each system's capabilities are different as a result. Scenes can define how " "an extended class initializes, but not what its behavior actually is. Scenes " "are often used in conjunction with a script, the scene declaring a " "composition of nodes, and the script adding behaviour with imperative code." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:16 msgid "Anonymous types" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:18 msgid "" "It *is* possible to completely define a scenes' contents using a script " "alone. This is, in essence, what the Godot Editor does, only in the C++ " "constructor of its objects." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:22 msgid "" "But, choosing which one to use can be a dilemma. Creating script instances " "is identical to creating in-engine classes whereas handling scenes requires " "a change in API:" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:62 msgid "" "Also, scripts will operate a little slower than scenes due to the speed " "differences between engine and script code. The larger and more complex the " "node, the more reason there is to build it as a scene." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:67 msgid "Named types" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:69 msgid "" "Scripts can be registered as a new type within the editor itself. This " "displays it as a new type in the node or resource creation dialog with an " "optional icon. This way, the user's ability to use the script is much more " "streamlined. Rather than having to..." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:74 msgid "Know the base type of the script they would like to use." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:76 msgid "Create an instance of that base type." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:78 msgid "Add the script to the node." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:80 msgid "" "With a registered script, the scripted type instead becomes a creation " "option like the other nodes and resources in the system. The creation dialog " "even has a search bar to look up the type by name." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:85 #, fuzzy msgid "There are two systems for registering types:" msgstr "Ne postoje ograničenja prilikom korištenja Godot-a" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:87 msgid ":ref:`Custom Types `" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:89 msgid "Editor-only. Typenames are not accessible at runtime." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:91 msgid "Does not support inherited custom types." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:93 msgid "An initializer tool. Creates the node with the script. Nothing more." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:95 msgid "" "Editor has no type-awareness of the script or its relationship to other " "engine types or scripts." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:98 #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:116 msgid "Allows users to define an icon." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:100 msgid "" "Works for all scripting languages because it deals with Script resources in " "abstract." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:102 msgid "" "Set up using :ref:`EditorPlugin.add_custom_type " "`." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:104 msgid ":ref:`Script Classes `" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:106 msgid "Editor and runtime accessible." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:108 msgid "Displays inheritance relationships in full." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:110 msgid "" "Creates the node with the script, but can also change types or extend the " "type from the editor." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:113 msgid "" "Editor is aware of inheritance relationships between scripts, script " "classes, and engine C++ classes." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:118 msgid "" "Engine developers must add support for languages manually (both name " "exposure and runtime accessibility)." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:121 msgid "Godot 3.1+ only." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:123 msgid "" "The Editor scans project folders and registers any exposed names for all " "scripting languages. Each scripting language must implement its own support " "for exposing this information." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:127 msgid "" "Both methodologies add names to the creation dialog, but script classes, in " "particular, also allow for users to access the typename without loading the " "script resource. Creating instances and accessing constants or static " "methods is viable from anywhere." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:132 msgid "" "With features like these, one may wish their type to be a script without a " "scene due to the ease of use it grants users. Those developing plugins or " "creating in-house tools for designers to use will find an easier time of " "things this way." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:137 msgid "" "On the downside, it also means having to use largely imperative programming." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:140 msgid "Performance of Script vs PackedScene" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:142 msgid "" "One last aspect to consider when choosing scenes and scripts is execution " "speed." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:144 msgid "" "As the size of objects increases, the scripts' necessary size to create and " "initialize them grows much larger. Creating node hierarchies demonstrates " "this. Each Node's logic could be several hundred lines of code in length." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:148 msgid "" "The code example below creates a new ``Node``, changes its name, assigns a " "script to it, sets its future parent as its owner so it gets saved to disk " "along with it, and finally adds it as a child of the ``Main`` node:" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:187 msgid "" "Script code like this is much slower than engine-side C++ code. Each " "instruction makes a call to the scripting API which leads to many " "\"lookups\" on the back-end to find the logic to execute." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:191 msgid "" "Scenes help to avoid this performance issue. :ref:`PackedScene " "`, the base type that scenes inherit from, defines " "resources that use serialized data to create objects. The engine can process " "scenes in batches on the back-end and provide much better performance than " "scripts." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:197 #: ../../docs/tutorials/shaders/your_first_shader/your_first_2d_shader.rst:241 msgid "Conclusion" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:199 msgid "In the end, the best approach is to consider the following:" msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:201 msgid "" "If one wishes to create a basic tool that is going to be re-used in several " "different projects and which people of all skill levels will likely use " "(including those who don't label themselves as \"programmers\"), then " "chances are that it should probably be a script, likely one with a custom " "name/icon." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:206 msgid "" "If one wishes to create a concept that is particular to their game, then it " "should always be a scene. Scenes are easier to track/edit and provide more " "security than scripts." msgstr "" #: ../../docs/tutorials/best_practices/scenes_versus_scripts.rst:210 msgid "" "If one would like to give a name to a scene, then they can still sort of do " "this by declaring a script class and giving it a scene as a constant. The " "script becomes, in effect, a namespace:" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:4 msgid "Autoloads versus regular nodes" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:6 msgid "" "Godot offers a feature to automatically load nodes at the root of your " "project, allowing you to access them globally, that can fulfill the role of " "a Singleton: :ref:`doc_singletons_autoload`. These autoloaded nodes are not " "freed when you change the scene from code with :ref:`SceneTree." "change_scene_to_file `." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:11 msgid "" "In this guide, you will learn when to use the Autoload feature, and " "techniques you can use to avoid it." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:15 msgid "The cutting audio issue" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:17 msgid "" "Other engines can encourage the use of creating manager classes, singletons " "that organize a lot of functionality into a globally accessible object. " "Godot offers many ways to avoid global state thanks to the node tree and " "signals." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:21 msgid "" "For example, let's say we are building a platformer and want to collect " "coins that play a sound effect. There's a node for that: the :ref:" "`AudioStreamPlayer `. But if we call the " "``AudioStreamPlayer`` while it is already playing a sound, the new sound " "interrupts the first." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:26 msgid "" "A solution is to code a global, autoloaded sound manager class. It generates " "a pool of ``AudioStreamPlayer`` nodes that cycle through as each new request " "for sound effects comes in. Say we call that class ``Sound``, you can use it " "from anywhere in your project by calling ``Sound.play(\"coin_pickup." "ogg\")``. This solves the problem in the short term but causes more problems:" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:32 msgid "" "**Global state**: one object is now responsible for all objects' data. If " "the ``Sound`` class has errors or doesn't have an AudioStreamPlayer " "available, all the nodes calling it can break." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:36 msgid "" "**Global access**: now that any object can call ``Sound.play(sound_path)`` " "from anywhere, there's no longer an easy way to find the source of a bug." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:39 msgid "" "**Global resource allocation**: with a pool of ``AudioStreamPlayer`` nodes " "stored from the start, you can either have too few and face bugs, or too " "many and use more memory than you need." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:45 msgid "" "About global access, the problem is that any code anywhere could pass wrong " "data to the ``Sound`` autoload in our example. As a result, the domain to " "explore to fix the bug spans the entire project." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:49 msgid "" "When you keep code inside a scene, only one or two scripts may be involved " "in audio." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:52 msgid "" "Contrast this with each scene keeping as many ``AudioStreamPlayer`` nodes as " "it needs within itself and all these problems go away:" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:55 msgid "" "Each scene manages its own state information. If there is a problem with the " "data, it will only cause issues in that one scene." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:58 msgid "" "Each scene accesses only its own nodes. Now, if there is a bug, it's easy to " "find which node is at fault." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:61 msgid "Each scene allocates exactly the amount of resources it needs." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:64 msgid "Managing shared functionality or data" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:66 msgid "" "Another reason to use an Autoload can be that you want to reuse the same " "method or data across many scenes." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:69 msgid "" "In the case of functions, you can create a new type of ``Node`` that " "provides that feature for an individual scene using the :ref:`class_name " "` keyword in GDScript." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:73 msgid "When it comes to data, you can either:" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:75 msgid "" "Create a new type of :ref:`Resource ` to share the data." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:77 msgid "" "Store the data in an object to which each node has access, for example using " "the ``owner`` property to access the scene's root node." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:81 msgid "When you should use an Autoload" msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:83 msgid "" "GDScript supports the creation of ``static`` functions using ``static " "func``. When combined with ``class_name``, this makes it possible to create " "libraries of helper functions without having to create an instance to call " "them. The limitation of static functions is that they can't reference member " "variables, non-static functions or ``self``." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:89 msgid "" "Since Godot 4.1, GDScript also supports ``static`` variables using ``static " "var``. This means you can now share a variables across instances of a class " "without having to create a separate autoload." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:93 msgid "" "Still, autoloaded nodes can simplify your code for systems with a wide " "scope. If the autoload is managing its own information and not invading the " "data of other objects, then it's a great way to create systems that handle " "broad-scoped tasks. For example, a quest or a dialogue system." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:100 msgid "" "An autoload is *not* necessarily a singleton. Nothing prevents you from " "instantiating copies of an autoloaded node. An autoload is only a tool that " "makes a node load automatically as a child of the root of your scene tree, " "regardless of your game's node structure or which scene you run, e.g. by " "pressing the :kbd:`F6` key." msgstr "" #: ../../docs/tutorials/best_practices/autoloads_versus_internal_nodes.rst:106 msgid "" "As a result, you can get the autoloaded node, for example an autoload called " "``Sound``, by calling ``get_node(\"/root/Sound\")``." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:4 msgid "When and how to avoid using nodes for everything" msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:6 msgid "" "Nodes are cheap to produce, but even they have their limits. A project may " "have tens of thousands of nodes all doing things. The more complex their " "behavior though, the larger the strain each one adds to a project's " "performance." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:11 msgid "" "Godot provides more lightweight objects for creating APIs which nodes use. " "Be sure to keep these in mind as options when designing how you wish to " "build your project's features." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:15 msgid "" ":ref:`Object `: The ultimate lightweight object, the original " "Object must use manual memory management. With that said, it isn't too " "difficult to create one's own custom data structures, even node structures, " "that are also lighter than the :ref:`Node ` class." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:20 msgid "" "**Example:** See the :ref:`Tree ` node. It supports a high level " "of customization for a table of content with an arbitrary number of rows and " "columns. The data that it uses to generate its visualization though is " "actually a tree of :ref:`TreeItem ` Objects." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:25 msgid "" "**Advantages:** Simplifying one's API to smaller scoped objects helps " "improve its accessibility and improve iteration time. Rather than working " "with the entire Node library, one creates an abbreviated set of Objects from " "which a node can generate and manage the appropriate sub-nodes." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:32 msgid "" "One should be careful when handling them. One can store an Object into a " "variable, but these references can become invalid without warning. For " "example, if the object's creator decides to delete it out of nowhere, this " "would trigger an error state when one next accesses it." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:37 msgid "" ":ref:`RefCounted `: Only a little more complex than " "Object. They track references to themselves, only deleting loaded memory " "when no further references to themselves exist. These are useful in the " "majority of cases where one needs data in a custom class." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:42 msgid "" "**Example:** See the :ref:`FileAccess ` object. It " "functions just like a regular Object except that one need not delete it " "themselves." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:45 msgid "**Advantages:** same as the Object." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:47 msgid "" ":ref:`Resource `: Only slightly more complex than " "RefCounted. They have the innate ability to serialize/deserialize (i.e. save " "and load) their object properties to/from Godot resource files." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:51 msgid "" "**Example:** Scripts, PackedScene (for scene files), and other types like " "each of the :ref:`AudioEffect ` classes. Each of these " "can be saved and loaded, therefore they extend from Resource." msgstr "" #: ../../docs/tutorials/best_practices/node_alternatives.rst:55 msgid "" "**Advantages:** Much has :ref:`already been said ` on :ref:" "`Resource `'s advantages over traditional data storage " "methods. In the context of using Resources over Nodes though, their main " "advantage is in Inspector-compatibility. While nearly as lightweight as " "Object/RefCounted, they can still display and export properties in the " "Inspector. This allows them to fulfill a purpose much like sub-Nodes on the " "usability front, but also improve performance if one plans to have many such " "Resources/Nodes in their scenes." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:4 msgid "Godot interfaces" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:6 msgid "" "Often one needs scripts that rely on other objects for features. There are 2 " "parts to this process:" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:9 msgid "Acquiring a reference to the object that presumably has the features." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:11 msgid "Accessing the data or logic from the object." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:13 msgid "The rest of this tutorial outlines the various ways of doing all this." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:16 msgid "Acquiring object references" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:18 msgid "" "For all :ref:`Object `\\s, the most basic way of referencing " "them is to get a reference to an existing object from another acquired " "instance." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:32 msgid "" "The same principle applies for :ref:`RefCounted ` objects. " "While users often access :ref:`Node ` and :ref:`Resource " "` this way, alternative measures are available." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:36 msgid "" "Instead of property or method access, one can get Resources by load access." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:121 msgid "Note the following:" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:123 msgid "There are many ways in which a language can load such resources." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:125 msgid "" "When designing how objects will access data, don't forget that one can pass " "resources around as references as well." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:128 msgid "" "Keep in mind that loading a resource fetches the cached resource instance " "maintained by the engine. To get a new object, one must :ref:`duplicate " "` an existing reference or instantiate one " "from scratch with ``new()``." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:133 msgid "Nodes likewise have an alternative access point: the SceneTree." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:267 msgid "Accessing data or logic from an object" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:269 msgid "" "Godot's scripting API is duck-typed. This means that if a script executes an " "operation, Godot doesn't validate that it supports the operation by " "**type**. It instead checks that the object **implements** the individual " "method." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:273 msgid "" "For example, the :ref:`CanvasItem ` class has a " "``visible`` property. All properties exposed to the scripting API are in " "fact a setter and getter pair bound to a name. If one tried to access :ref:" "`CanvasItem.visible `, then Godot would " "do the following checks, in order:" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:279 msgid "" "If the object has a script attached, it will attempt to set the property " "through the script. This leaves open the opportunity for scripts to override " "a property defined on a base object by overriding the setter method for the " "property." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:284 msgid "" "If the script does not have the property, it performs a HashMap lookup in " "the ClassDB for the \"visible\" property against the CanvasItem class and " "all of its inherited types. If found, it will call the bound setter or " "getter. For more information about HashMaps, see the :ref:`data preferences " "` docs." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:290 msgid "" "If not found, it does an explicit check to see if the user wants to access " "the \"script\" or \"meta\" properties." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:293 msgid "" "If not, it checks for a ``_set``/``_get`` implementation (depending on type " "of access) in the CanvasItem and its inherited types. These methods can " "execute logic that gives the impression that the Object has a property. This " "is also the case with the ``_get_property_list`` method." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:298 msgid "" "Note that this happens even for non-legal symbol names, such as names " "starting with a digit or containing a slash." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:301 msgid "" "As a result, this duck-typed system can locate a property either in the " "script, the object's class, or any class that object inherits, but only for " "things which extend Object." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:305 msgid "" "Godot provides a variety of options for performing runtime checks on these " "accesses:" msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:308 msgid "" "A duck-typed property access. These will be property checks (as described " "above). If the operation isn't supported by the object, execution will halt." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:336 msgid "" "A method check. In the case of :ref:`CanvasItem.visible " "`, one can access the methods, " "``set_visible`` and ``is_visible`` like any other method." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:474 msgid "" "Outsource the access to a :ref:`Callable `. These may be " "useful in cases where one needs the max level of freedom from dependencies. " "In this case, one relies on an external context to setup the method." msgstr "" #: ../../docs/tutorials/best_practices/godot_interfaces.rst:536 msgid "" "These strategies contribute to Godot's flexible design. Between them, users " "have a breadth of tools to meet their specific needs." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:4 msgid "Godot notifications" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:6 msgid "" "Every Object in Godot implements a :ref:`_notification " "` method. Its purpose is to allow " "the Object to respond to a variety of engine-level callbacks that may relate " "to it. For example, if the engine tells a :ref:`CanvasItem " "` to \"draw\", it will call " "``_notification(NOTIFICATION_DRAW)``." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:13 msgid "" "Some of these notifications, like draw, are useful to override in scripts. " "So much so that Godot exposes many of them with dedicated functions:" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:16 msgid "``_ready()``: ``NOTIFICATION_READY``" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:18 msgid "``_enter_tree()``: ``NOTIFICATION_ENTER_TREE``" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:20 msgid "``_exit_tree()``: ``NOTIFICATION_EXIT_TREE``" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:22 msgid "``_process(delta)``: ``NOTIFICATION_PROCESS``" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:24 msgid "``_physics_process(delta)``: ``NOTIFICATION_PHYSICS_PROCESS``" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:26 msgid "``_draw()``: ``NOTIFICATION_DRAW``" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:28 msgid "" "What users might *not* realize is that notifications exist for types other " "than Node alone, for example:" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:31 msgid "" ":ref:`Object::NOTIFICATION_POSTINITIALIZE " "`: a callback that " "triggers during object initialization. Not accessible to scripts." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:34 msgid "" ":ref:`Object::NOTIFICATION_PREDELETE " "`: a callback that triggers " "before the engine deletes an Object, i.e. a \"destructor\"." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:38 msgid "" "And many of the callbacks that *do* exist in Nodes don't have any dedicated " "methods, but are still quite useful." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:41 msgid "" ":ref:`Node::NOTIFICATION_PARENTED " "`: a callback that triggers " "anytime one adds a child node to another node." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:44 msgid "" ":ref:`Node::NOTIFICATION_UNPARENTED " "`: a callback that triggers " "anytime one removes a child node from another node." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:48 msgid "" "One can access all these custom notifications from the universal " "``_notification()`` method." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:52 msgid "" "Methods in the documentation labeled as \"virtual\" are also intended to be " "overridden by scripts." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:55 msgid "" "A classic example is the :ref:`_init ` " "method in Object. While it has no ``NOTIFICATION_*`` equivalent, the engine " "still calls the method. Most languages (except C#) rely on it as a " "constructor." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:60 msgid "" "So, in which situation should one use each of these notifications or virtual " "functions?" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:64 msgid "_process vs. _physics_process vs. \\*_input" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:66 msgid "" "Use ``_process()`` when one needs a framerate-dependent delta time between " "frames. If code that updates object data needs to update as often as " "possible, this is the right place. Recurring logic checks and data caching " "often execute here, but it comes down to the frequency at which one needs " "the evaluations to update. If they don't need to execute every frame, then " "implementing a Timer-timeout loop is another option." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:105 msgid "" "Use ``_physics_process()`` when one needs a framerate-independent delta time " "between frames. If code needs consistent updates over time, regardless of " "how fast or slow time advances, this is the right place. Recurring kinematic " "and object transform operations should execute here." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:110 msgid "" "While it is possible, to achieve the best performance, one should avoid " "making input checks during these callbacks. ``_process()`` and " "``_physics_process()`` will trigger at every opportunity (they do not " "\"rest\" by default). In contrast, ``*_input()`` callbacks will trigger only " "on frames in which the engine has actually detected the input." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:116 msgid "" "One can check for input actions within the input callbacks just the same. If " "one wants to use delta time, one can fetch it from the related delta time " "methods as needed." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:164 msgid "_init vs. initialization vs. export" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:166 msgid "" "If the script initializes its own node subtree, without a scene, that code " "should execute in ``_init()``. Other property or SceneTree-independent " "initializations should also run here." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:171 msgid "The C# equivalent to GDScript's ``_init()`` method is the constructor." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:173 msgid "" "``_init()`` triggers before ``_enter_tree()`` or ``_ready()``, but after a " "script creates and initializes its properties. When instantiating a scene, " "property values will set up according to the following sequence:" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:177 msgid "" "**Initial value assignment:** the property is assigned its initialization " "value, or its default value if one is not specified. If a setter exists, it " "is not used." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:180 msgid "" "**``_init()`` assignment:** the property's value is replaced by any " "assignments made in ``_init()``, triggering the setter." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:183 msgid "" "**Exported value assignment:** an exported property's value is again " "replaced by any value set in the Inspector, triggering the setter." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:226 msgid "" "As a result, instantiating a script versus a scene may affect both the " "initialization *and* the number of times the engine calls the setter." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:230 msgid "_ready vs. _enter_tree vs. NOTIFICATION_PARENTED" msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:232 msgid "" "When instantiating a scene connected to the first executed scene, Godot will " "instantiate nodes down the tree (making ``_init()`` calls) and build the " "tree going downwards from the root. This causes ``_enter_tree()`` calls to " "cascade down the tree. Once the tree is complete, leaf nodes call " "``_ready``. A node will call this method once all child nodes have finished " "calling theirs. This then causes a reverse cascade going up back to the " "tree's root." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:239 msgid "" "When instantiating a script or a standalone scene, nodes are not added to " "the SceneTree upon creation, so no ``_enter_tree()`` callbacks trigger. " "Instead, only the ``_init()`` call occurs. When the scene is added to the " "SceneTree, the ``_enter_tree()`` and ``_ready()`` calls occur." msgstr "" #: ../../docs/tutorials/best_practices/godot_notifications.rst:244 msgid "" "If one needs to trigger behavior that occurs as nodes parent to another, " "regardless of whether it occurs as part of the main/active scene or not, one " "can use the :ref:`PARENTED ` " "notification. For example, here is a snippet that connects a node's method " "to a custom signal on the parent node without failing. Useful on data-" "centric nodes that one might create at runtime." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:6 msgid "Data preferences" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:8 msgid "" "Ever wondered whether one should approach problem X with data structure Y or " "Z? This article covers a variety of topics related to these dilemmas." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:13 msgid "" "This article makes references to \"[something]-time\" operations. This " "terminology comes from algorithm analysis' `Big O Notation `_." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:17 msgid "" "Long-story short, it describes the worst-case scenario of runtime length. In " "laymen's terms:" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:20 msgid "" "\"As the size of a problem domain increases, the runtime length of the " "algorithm...\"" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:23 msgid "Constant-time, ``O(1)``: \"...does not increase.\"" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:24 msgid "Logarithmic-time, ``O(log n)``: \"...increases at a slow rate.\"" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:25 msgid "Linear-time, ``O(n)``: \"...increases at the same rate.\"" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:26 msgid "Etc." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:28 msgid "" "Imagine if one had to process 3 million data points within a single frame. " "It would be impossible to craft the feature with a linear-time algorithm " "since the sheer size of the data would increase the runtime far beyond the " "time allotted. In comparison, using a constant-time algorithm could handle " "the operation without issue." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:34 msgid "" "By and large, developers want to avoid engaging in linear-time operations as " "much as possible. But, if one keeps the scale of a linear-time operation " "small, and if one does not need to perform the operation often, then it may " "be acceptable. Balancing these requirements and choosing the right " "algorithm / data structure for the job is part of what makes programmers' " "skills valuable." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:42 msgid "Array vs. Dictionary vs. Object" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:44 msgid "" "Godot stores all variables in the scripting API in the :ref:`Variant " "` class. Variants can store Variant-compatible data " "structures such as :ref:`Array ` and :ref:`Dictionary " "` as well as :ref:`Objects `." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:50 msgid "" "Godot implements Array as a ``Vector``. The engine stores the Array " "contents in a contiguous section of memory, i.e. they are in a row adjacent " "to each other." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:56 msgid "" "For those unfamiliar with C++, a Vector is the name of the array object in " "traditional C++ libraries. It is a \"templated\" type, meaning that its " "records can only contain a particular type (denoted by angled brackets). So, " "for example, a :ref:`PackedStringArray ` would be " "something like a ``Vector``." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:63 msgid "Contiguous memory stores imply the following operation performance:" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:65 msgid "**Iterate:** Fastest. Great for loops." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:67 msgid "Op: All it does is increment a counter to get to the next record." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:69 msgid "**Insert, Erase, Move:** Position-dependent. Generally slow." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:71 msgid "" "Op: Adding/removing/moving content involves moving the adjacent records over " "(to make room / fill space)." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:74 msgid "Fast add/remove *from the end*." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:76 msgid "Slow add/remove *from an arbitrary position*." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:78 msgid "Slowest add/remove *from the front*." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:80 msgid "If doing many inserts/removals *from the front*, then..." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:82 msgid "invert the array." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:84 msgid "do a loop which executes the Array changes *at the end*." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:86 msgid "re-invert the array." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:88 msgid "" "This makes only 2 copies of the array (still constant time, but slow) versus " "copying roughly 1/2 of the array, on average, N times (linear time)." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:91 msgid "" "**Get, Set:** Fastest *by position*. E.g. can request 0th, 2nd, 10th record, " "etc. but cannot specify which record you want." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:94 msgid "Op: 1 addition operation from array start position up to desired index." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:96 msgid "**Find:** Slowest. Identifies the index/position of a value." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:98 msgid "" "Op: Must iterate through array and compare values until one finds a match." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:100 msgid "" "Performance is also dependent on whether one needs an exhaustive search." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:103 msgid "" "If kept ordered, custom search operations can bring it to logarithmic time " "(relatively fast). Laymen users won't be comfortable with this though. Done " "by re-sorting the Array after every edit and writing an ordered-aware search " "algorithm." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:108 msgid "" "Godot implements Dictionary as an ``OrderedHashMap``. The " "engine stores a small array (initialized to 2^3 or 8 records) of key-value " "pairs. When one attempts to access a value, they provide it a key. It then " "*hashes* the key, i.e. converts it into a number. The \"hash\" is used to " "calculate the index into the array. As an array, the OHM then has a quick " "lookup within the \"table\" of keys mapped to values. When the HashMap " "becomes too full, it increases to the next power of 2 (so, 16 records, then " "32, etc.) and rebuilds the structure." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:116 msgid "" "Hashes are to reduce the chance of a key collision. If one occurs, the table " "must recalculate another index for the value that takes the previous " "position into account. In all, this results in constant-time access to all " "records at the expense of memory and some minor operational efficiency." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:121 msgid "Hashing every key an arbitrary number of times." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:123 msgid "" "Hash operations are constant-time, so even if an algorithm must do more than " "one, as long as the number of hash calculations doesn't become too dependent " "on the density of the table, things will stay fast. Which leads to..." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:128 msgid "Maintaining an ever-growing size for the table." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:130 msgid "" "HashMaps maintain gaps of unused memory interspersed in the table on purpose " "to reduce hash collisions and maintain the speed of accesses. This is why it " "constantly increases in size quadratically by powers of 2." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:135 msgid "" "As one might be able to tell, Dictionaries specialize in tasks that Arrays " "do not. An overview of their operational details is as follows:" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:138 msgid "**Iterate:** Fast." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:140 msgid "" "Op: Iterate over the map's internal vector of hashes. Return each key. " "Afterwards, users then use the key to jump to and return the desired value." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:144 msgid "**Insert, Erase, Move:** Fastest." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:146 msgid "" "Op: Hash the given key. Do 1 addition operation to look up the appropriate " "value (array start + offset). Move is two of these (one insert, one erase). " "The map must do some maintenance to preserve its capabilities:" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:151 msgid "update ordered List of records." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:153 msgid "determine if table density mandates a need to expand table capacity." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:155 msgid "" "The Dictionary remembers in what order users inserted its keys. This enables " "it to execute reliable iterations." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:158 msgid "**Get, Set:** Fastest. Same as a lookup *by key*." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:160 msgid "Op: Same as insert/erase/move." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:162 msgid "**Find:** Slowest. Identifies the key of a value." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:164 msgid "" "Op: Must iterate through records and compare the value until a match is " "found." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:167 msgid "" "Note that Godot does not provide this feature out-of-the-box (because they " "aren't meant for this task)." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:170 msgid "" "Godot implements Objects as stupid, but dynamic containers of data content. " "Objects query data sources when posed questions. For example, to answer the " "question, \"do you have a property called, 'position'?\", it might ask its :" "ref:`script ` or the :ref:`ClassDB `. One can " "find more information about what objects are and how they work in the :ref:" "`doc_what_are_godot_classes` article." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:177 msgid "" "The important detail here is the complexity of the Object's task. Every time " "it performs one of these multi-source queries, it runs through *several* " "iteration loops and HashMap lookups. What's more, the queries are linear-" "time operations dependent on the Object's inheritance hierarchy size. If the " "class the Object queries (its current class) doesn't find anything, the " "request defers to the next base class, all the way up until the original " "Object class. While these are each fast operations in isolation, the fact " "that it must make so many checks is what makes them slower than both of the " "alternatives for looking up data." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:189 msgid "" "When developers mention how slow the scripting API is, it is this chain of " "queries they refer to. Compared to compiled C++ code where the application " "knows exactly where to go to find anything, it is inevitable that scripting " "API operations will take much longer. They must locate the source of any " "relevant data before they can attempt to access it." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:195 msgid "" "The reason GDScript is slow is because every operation it performs passes " "through this system." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:198 msgid "" "C# can process some content at higher speeds via more optimized bytecode. " "But, if the C# script calls into an engine class' content or if the script " "tries to access something external to it, it will go through this pipeline." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:203 msgid "" "NativeScript C++ goes even further and keeps everything internal by default. " "Calls into external structures will go through the scripting API. In " "NativeScript C++, registering methods to expose them to the scripting API is " "a manual task. It is at this point that external, non-C++ classes will use " "the API to locate them." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:209 msgid "" "So, assuming one extends from Reference to create a data structure, like an " "Array or Dictionary, why choose an Object over the other two options?" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:212 msgid "" "**Control:** With objects comes the ability to create more sophisticated " "structures. One can layer abstractions over the data to ensure the external " "API doesn't change in response to internal data structure changes. What's " "more, Objects can have signals, allowing for reactive behavior." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:217 msgid "" "**Clarity:** Objects are a reliable data source when it comes to the data " "that scripts and engine classes define for them. Properties may not hold the " "values one expects, but one doesn't need to worry about whether the property " "exists in the first place." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:222 msgid "" "**Convenience:** If one already has a similar data structure in mind, then " "extending from an existing class makes the task of building the data " "structure much easier. In comparison, Arrays and Dictionaries don't fulfill " "all use cases one might have." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:227 msgid "" "Objects also give users the opportunity to create even more specialized data " "structures. With it, one can design their own List, Binary Search Tree, " "Heap, Splay Tree, Graph, Disjoint Set, and any host of other options." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:231 msgid "" "\"Why not use Node for tree structures?\" one might ask. Well, the Node " "class contains things that won't be relevant to one's custom data structure. " "As such, it can be helpful to construct one's own node type when building " "tree structures." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:278 msgid "" "From here, one can then create their own structures with specific features, " "limited only by their imagination." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:282 msgid "Enumerations: int vs. string" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:284 msgid "" "Most languages offer an enumeration type option. GDScript is no different, " "but unlike most other languages, it allows one to use either integers or " "strings for the enum values (the latter only when using the ``export`` " "keyword in GDScript). The question then arises, \"which should one use?\"" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:289 msgid "" "The short answer is, \"whichever you are more comfortable with.\" This is a " "feature specific to GDScript and not Godot scripting in general; The " "languages prioritizes usability over performance." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:293 msgid "" "On a technical level, integer comparisons (constant-time) will happen faster " "than string comparisons (linear-time). If one wants to keep up other " "languages' conventions though, then one should use integers." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:297 msgid "" "The primary issue with using integers comes up when one wants to *print* an " "enum value. As integers, attempting to print ``MY_ENUM`` will print ``5`` or " "what-have-you, rather than something like ``\"MyEnum\"``. To print an " "integer enum, one would have to write a Dictionary that maps the " "corresponding string value for each enum." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:303 msgid "" "If the primary purpose of using an enum is for printing values and one " "wishes to group them together as related concepts, then it makes sense to " "use them as strings. That way, a separate data structure to execute on the " "printing is unnecessary." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:309 msgid "" "AnimatedTexture vs. AnimatedSprite2D vs. AnimationPlayer vs. AnimationTree" msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:311 msgid "" "Under what circumstances should one use each of Godot's animation classes? " "The answer may not be immediately clear to new Godot users." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:314 msgid "" ":ref:`AnimatedTexture ` is a texture that the engine " "draws as an animated loop rather than a static image. Users can manipulate..." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:318 msgid "the rate at which it moves across each section of the texture (FPS)." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:320 msgid "the number of regions contained within the texture (frames)." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:322 msgid "" "Godot's :ref:`RenderingServer ` then draws the " "regions in sequence at the prescribed rate. The good news is that this " "involves no extra logic on the part of the engine. The bad news is that " "users have very little control." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:327 msgid "" "Also note that AnimatedTexture is a :ref:`Resource ` unlike " "the other :ref:`Node ` objects discussed here. One might create " "a :ref:`Sprite2D ` node that uses AnimatedTexture as its " "texture. Or (something the others can't do) one could add AnimatedTextures " "as tiles in a :ref:`TileSet ` and integrate it with a :ref:" "`TileMap ` for many auto-animating backgrounds that all " "render in a single batched draw call." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:335 msgid "" "The AnimatedSprite2D node, in combination with the :ref:`SpriteFrames " "` resource, allows one to create a variety of animation " "sequences through spritesheets, flip between animations, and control their " "speed, regional offset, and orientation. This makes them well-suited to " "controlling 2D frame-based animations." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:341 msgid "" "If one needs trigger other effects in relation to animation changes (for " "example, create particle effects, call functions, or manipulate other " "peripheral elements besides the frame-based animation), then will need to " "use an :ref:`AnimationPlayer ` node in conjunction " "with the AnimatedSprite2D." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:347 msgid "" "AnimationPlayers are also the tool one will need to use if they wish to " "design more complex 2D animation systems, such as..." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:350 msgid "**Cut-out animations:** editing sprites' transforms at runtime." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:352 msgid "" "**2D Mesh animations:** defining a region for the sprite's texture and " "rigging a skeleton to it. Then one animates the bones which stretch and bend " "the texture in proportion to the bones' relationships to each other." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:357 msgid "A mix of the above." msgstr "" #: ../../docs/tutorials/best_practices/data_preferences.rst:359 msgid "" "While one needs an AnimationPlayer to design each of the individual " "animation sequences for a game, it can also be useful to combine animations " "for blending, i.e. enabling smooth transitions between these animations. " "There may also be a hierarchical structure between animations that one plans " "out for their object. These are the cases where the :ref:`AnimationTree " "` shines. One can find an in-depth guide on using the " "AnimationTree :ref:`here `." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:4 msgid "Logic preferences" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:6 msgid "" "Ever wondered whether one should approach problem X with strategy Y or Z? " "This article covers a variety of topics related to these dilemmas." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:10 msgid "Adding nodes and changing properties: which first?" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:12 msgid "" "When initializing nodes from a script at runtime, you may need to change " "properties such as the node's name or position. A common dilemma is, when " "should you change those values?" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:16 msgid "" "It is the best practice to change values on a node before adding it to the " "scene tree. Some property's setters have code to update other corresponding " "values, and that code can be slow! For most cases, this code has no impact " "on your game's performance, but in heavy use cases such as procedural " "generation, it can bring your game to a crawl." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:22 msgid "" "For these reasons, it is always a best practice to set the initial values of " "a node before adding it to the scene tree." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:26 msgid "Loading vs. preloading" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:28 msgid "" "In GDScript, there exists the global :ref:`preload " "` method. It loads resources as early as " "possible to front-load the \"loading\" operations and avoid loading " "resources while in the middle of performance-sensitive code." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:33 msgid "" "Its counterpart, the :ref:`load ` method, loads " "a resource only when it reaches the load statement. That is, it will load a " "resource in-place which can cause slowdowns when it occurs in the middle of " "sensitive processes. The ``load()`` function is also an alias for :ref:" "`ResourceLoader.load(path) ` which is " "accessible to *all* scripting languages." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:40 msgid "" "So, when exactly does preloading occur versus loading, and when should one " "use either? Let's see an example:" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:103 msgid "" "Preloading allows the script to handle all the loading the moment one loads " "the script. Preloading is useful, but there are also times when one doesn't " "wish for it. To distinguish these situations, there are a few things one can " "consider:" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:108 msgid "" "If one cannot determine when the script might load, then preloading a " "resource, especially a scene or script, could result in further loads one " "does not expect. This could lead to unintentional, variable-length load " "times on top of the original script's load operations." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:113 msgid "" "If something else could replace the value (like a scene's exported " "initialization), then preloading the value has no meaning. This point isn't " "a significant factor if one intends to always create the script on its own." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:117 msgid "" "If one wishes only to 'import' another class resource (script or scene), " "then using a preloaded constant is often the best course of action. However, " "in exceptional cases, one may wish not to do this:" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:121 msgid "" "If the 'imported' class is liable to change, then it should be a property " "instead, initialized either using an ``export`` or a ``load()`` (and perhaps " "not even initialized until later)." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:125 msgid "" "If the script requires a great many dependencies, and one does not wish to " "consume so much memory, then one may wish to, load and unload various " "dependencies at runtime as circumstances change. If one preloads resources " "into constants, then the only way to unload these resources would be to " "unload the entire script. If they are instead loaded properties, then one " "can set them to ``null`` and remove all references to the resource entirely " "(which, as a :ref:`RefCounted `-extending type, will cause " "the resources to delete themselves from memory)." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:136 msgid "Large levels: static vs. dynamic" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:138 msgid "" "If one is creating a large level, which circumstances are most appropriate? " "Should they create the level as one static space? Or should they load the " "level in pieces and shift the world's content as needed?" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:142 msgid "" "Well, the simple answer is, \"when the performance requires it.\" The " "dilemma associated with the two options is one of the age-old programming " "choices: does one optimize memory over speed, or vice versa?" msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:146 msgid "" "The naive answer is to use a static level that loads everything at once. " "But, depending on the project, this could consume a large amount of memory. " "Wasting users' RAM leads to programs running slow or outright crashing from " "everything else the computer tries to do at the same time." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:151 msgid "" "No matter what, one should break larger scenes into smaller ones (to aid in " "reusability of assets). Developers can then design a node that manages the " "creation/loading and deletion/unloading of resources and nodes in real-time. " "Games with large and varied environments or procedurally generated elements " "often implement these strategies to avoid wasting memory." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:157 msgid "" "On the flip side, coding a dynamic system is more complex, i.e. uses more " "programmed logic, which results in opportunities for errors and bugs. If one " "isn't careful, they can develop a system that bloats the technical debt of " "the application." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:162 msgid "As such, the best options would be..." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:164 msgid "To use a static level for smaller games." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:166 msgid "" "If one has the time/resources on a medium/large game, create a library or " "plugin that can code the management of nodes and resources. If refined over " "time, so as to improve usability and stability, then it could evolve into a " "reliable tool across projects." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:171 msgid "" "Code the dynamic logic for a medium/large game because one has the coding " "skills, but not the time or resources to refine the code (game's gotta get " "done). Could potentially refactor later to outsource the code into a plugin." msgstr "" #: ../../docs/tutorials/best_practices/logic_preferences.rst:176 msgid "" "For an example of the various ways one can swap scenes around at runtime, " "please see the :ref:`\"Change scenes manually\" " "` documentation." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:4 msgid "Project organization" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:9 msgid "" "Since Godot has no restrictions on project structure or filesystem usage, " "organizing files when learning the engine can seem challenging. This " "tutorial suggests a workflow which should be a good starting point. We will " "also cover using version control with Godot." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:15 msgid "Organization" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:17 msgid "" "Godot is scene-based in nature, and uses the filesystem as-is, without " "metadata or an asset database." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:20 msgid "" "Unlike other engines, many resources are contained within the scene itself, " "so the amount of files in the filesystem is considerably lower." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:23 msgid "" "Considering that, the most common approach is to group assets as close to " "scenes as possible; when a project grows, it makes it more maintainable." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:27 msgid "" "As an example, one can usually place into a single folder their basic " "assets, such as sprite images, 3D model meshes, materials, and music, etc. " "They can then use a separate folder to store built levels that use them." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:48 msgid "Style guide" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:50 msgid "" "For consistency across projects, we recommend following these guidelines:" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:52 msgid "" "Use **snake_case** for folder and file names (with the exception of C# " "scripts). This sidesteps case sensitivity issues that can crop up after " "exporting a project on Windows. C# scripts are an exception to this rule, as " "the convention is to name them after the class name which should be in " "PascalCase." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:57 msgid "" "Use **PascalCase** for node names, as this matches built-in node casing." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:58 msgid "" "In general, keep third-party resources in a top-level ``addons/`` folder, " "even if they aren't editor plugins. This makes it easier to track which " "files are third-party. There are some exceptions to this rule; for instance, " "if you use third-party game assets for a character, it makes more sense to " "include them within the same folder as the character scenes and scripts." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:65 msgid "Importing" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:67 msgid "" "Godot versions prior to 3.0 did the import process from files outside the " "project. While this can be useful in large projects, it resulted in an " "organization hassle for most developers." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:71 msgid "" "Because of this, assets are now transparently imported from within the " "project folder." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:75 msgid "Ignoring specific folders" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:77 msgid "" "To prevent Godot from importing files contained in a specific folder, create " "an empty file called ``.gdignore`` in the folder (the leading ``.`` is " "required). This can be useful to speed up the initial project importing." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:83 msgid "" "To create a file whose name starts with a dot on Windows, place a dot at " "both the beginning and end of the filename (\".gdignore.\"). Windows will " "automatically remove the trailing dot when you confirm the name." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:87 msgid "" "Alternatively, you can use a text editor such as Notepad++ or use the " "following command in a command prompt: ``type nul > .gdignore``" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:90 msgid "" "Once the folder is ignored, resources in that folder can't be loaded anymore " "using the ``load()`` and ``preload()`` methods. Ignoring a folder will also " "automatically hide it from the FileSystem dock, which can be useful to " "reduce clutter." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:94 msgid "" "Note that the ``.gdignore`` file's contents are ignored, which is why the " "file should be empty. It does not support patterns like ``.gitignore`` files " "do." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:100 msgid "Case sensitivity" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:102 msgid "" "Windows and recent macOS versions use case-insensitive filesystems by " "default, whereas Linux distributions use a case-sensitive filesystem by " "default. This can cause issues after exporting a project, since Godot's PCK " "virtual filesystem is case-sensitive. To avoid this, it's recommended to " "stick to ``snake_case`` naming for all files in the project (and lowercase " "characters in general)." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:111 msgid "" "You can break this rule when style guides say otherwise (such as the C# " "style guide). Still, be consistent to avoid mistakes." msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:114 msgid "" "On Windows 10, to further avoid mistakes related to case sensitivity, you " "can also make the project folder case-sensitive. After enabling the Windows " "Subsystem for Linux feature, run the following command in a PowerShell " "window::" msgstr "" #: ../../docs/tutorials/best_practices/project_organization.rst:124 msgid "" "If you haven't enabled the Windows Subsystem for Linux, you can enter the " "following line in a PowerShell window *running as Administrator* then reboot " "when asked::" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:4 msgid "Version control systems" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:9 msgid "" "Godot aims to be VCS-friendly and generate mostly readable and mergeable " "files." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:12 #, fuzzy msgid "Version control plugins" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/best_practices/version_control_systems.rst:14 msgid "" "Godot also supports the use of version control systems in the editor itself. " "However, version control in the editor requires a plugin for the specific " "VCS you're using." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:18 msgid "" "As of July 2023, there is only a Git plugin available, but the community may " "create additional VCS plugins." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:22 msgid "Official Git plugin" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:24 msgid "" "Using Git from inside the editor is supported with an official plugin. You " "can find the latest releases on `GitHub `__." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:28 #, fuzzy msgid "" "Documentation on how to use the Git plugin can be found on its `wiki " "`__." msgstr "" "Uz ovu dokumentaciju takođe možete pogledati raznorazne `Godot demo projects " "`_." #: ../../docs/tutorials/best_practices/version_control_systems.rst:32 msgid "Files to exclude from VCS" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:36 msgid "" "This lists files and folders that should be ignored from version control in " "Godot 4.1 and later." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:39 msgid "" "The list of files of folders that should be ignored from version control in " "Godot 3.x and Godot 4.0 is **entirely** different. This is important, as " "Godot 3.x and 4.0 may store sensitive credentials in ``export_presets.cfg`` " "(unlike Godot 4.1 and later)." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:44 msgid "" "If you are using Godot 3, check the ``3.5`` version of this documentation " "page instead." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:47 msgid "" "There are some files and folders Godot automatically creates when opening a " "project in the editor for the first time. To avoid bloating your version " "control repository with generated data, you should add them to your VCS " "ignore:" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:51 msgid "``.godot/``: This folder stores various project cache data." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:52 msgid "" "``*.translation``: These files are binary imported :ref:`translations " "` generated from CSV files." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:55 msgid "" "You can make the Godot project manager generate version control metadata for " "you automatically when creating a project. When choosing the **Git** option, " "this creates ``.gitignore`` and ``.gitattributes`` files in the project root:" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:63 msgid "" "Creating version control metadata in the project manager's New Project dialog" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:63 msgid "" "Creating version control metadata in the project manager's **New Project** " "dialog" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:65 msgid "" "In existing projects, select the **Project** menu at the top of the editor, " "then choose **Version Control > Generate Version Control Metadata**. This " "creates the same files as if the operation was performed in the project " "manager." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:70 msgid "Working with Git on Windows" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:72 msgid "" "Most Git for Windows clients are configured with the ``core.autocrlf`` set " "to ``true``. This can lead to files unnecessarily being marked as modified " "by Git due to their line endings being converted from LF to CRLF " "automatically." msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:76 msgid "It is better to set this option as:" msgstr "" #: ../../docs/tutorials/best_practices/version_control_systems.rst:82 msgid "" "Creating version control metadata using the project manager or editor will " "automatically enforce LF line endings using the ``.gitattributes`` file. In " "this case, you don't need to change your Git configuration." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:4 #: ../../docs/tutorials/3d/occlusion_culling.rst:261 #: ../../docs/tutorials/3d/resolution_scaling.rst:261 #: ../../docs/tutorials/audio/text_to_speech.rst:85 #: ../../docs/tutorials/export/exporting_for_ios.rst:133 #: ../../docs/tutorials/export/one-click_deploy.rst:65 #: ../../docs/tutorials/inputs/controllers_gamepads_joysticks.rst:281 #: ../../docs/contributing/development/compiling/compiling_for_windows.rst:248 #: ../../docs/contributing/development/compiling/compiling_for_android.rst:253 #: ../../docs/contributing/development/compiling/compiling_with_script_encryption_key.rst:83 #: ../../docs/contributing/development/editor/creating_icons.rst:92 msgid "Troubleshooting" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:6 msgid "" "This page lists common issues encountered when using Godot and possible " "solutions." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:10 msgid "" "See :ref:`doc_using_the_web_editor` for caveats specific to the Web version " "of the Godot editor." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:14 msgid "" "The editor runs slowly and uses all my CPU and GPU resources, making my " "computer noisy" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:16 msgid "" "This is a known issue, especially on macOS since most Macs have Retina " "displays. Due to Retina displays' higher pixel density, everything has to be " "rendered at a higher resolution. This increases the load on the GPU and " "decreases perceived performance." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:21 msgid "There are several ways to improve performance and battery life:" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:23 msgid "" "In 3D, click the **Perspective** button in the top left corner and enable " "**Half Resolution**. The 3D viewport will now be rendered at half " "resolution, which can be up to 4 times faster." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:26 msgid "" "Open the Editor Settings and increase the value of **Low Processor Mode " "Sleep (µsec)** to ``33000`` (30 FPS). This value determines the amount of " "*microseconds* between frames to render. Higher values will make the editor " "feel less reactive but will help decrease CPU and GPU usage significantly." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:30 msgid "" "If you have a node that causes the editor to redraw continuously (such as " "particles), hide it and show it using a script in the ``_ready()`` method. " "This way, it will be hidden in the editor but will still be visible in the " "running project." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:36 msgid "" "The editor stutters and flickers on my variable refresh rate monitor (G-Sync/" "FreeSync)" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:38 msgid "" "This is a `known issue `__. Variable refresh rate monitors need to adjust their gamma " "curves continuously to emit a consistent amount of light over time. This can " "cause flicker to appear in dark areas of the image when the refresh rate " "varies a lot, which occurs as the Godot editor only redraws when necessary." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:44 #, fuzzy msgid "There are several workarounds for this:" msgstr "Ne postoje ograničenja prilikom korištenja Godot-a" #: ../../docs/tutorials/troubleshooting.rst:46 msgid "" "Enable **Interface > Editor > Update Continuously** in the Editor Settings. " "Keep in mind this will increase power usage and heat/noise emissions since " "the editor will now be rendering constantly, even if nothing has changed on " "screen. To alleviate this, you can increase **Low Processor Mode Sleep " "(µsec)** to ``33000`` (30 FPS) in the Editor Settings. This value determines " "the amount of *microseconds* between frames to render. Higher values will " "make the editor feel less reactive but will help decrease CPU and GPU usage " "significantly." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:53 msgid "" "Alternatively, disable variable refresh rate on your monitor or in the " "graphics driver." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:54 msgid "" "VRR flicker can be reduced on some displays using the **VRR Control** or " "**Fine Tune Dark Areas** options in your monitor's OSD. These options may " "increase input lag or result in crushed blacks." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:57 msgid "" "If using an OLED display, use the **Black (OLED)** editor theme preset in " "the Editor Settings. This hides VRR flicker thanks to OLED's perfect black " "levels." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:61 msgid "The editor or project takes a very long time to start" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:63 msgid "" "When using one of the Vulkan-based renderers (Forward+ or Forward Mobile), " "the first startup is expected to be relatively long. This is because shaders " "need to be compiled before they can be cached. Shaders also need to be " "cached again after updating Godot, after updating graphics drivers or after " "switching graphics cards." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:69 msgid "" "If the issue persists after the first startup, this is a `known bug `__ on Windows when you have " "specific USB peripherals connected. In particular, Corsair's iCUE software " "seems to cause this bug. Try updating your USB peripherals' drivers to their " "latest version. If the bug persists, you need to disconnect the specific " "peripheral before opening the editor. You can then connect the peripheral " "again." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:77 msgid "" "Firewall software such as Portmaster may also cause the debug port to be " "blocked. This causes the project to take a long time to start, while being " "unable to use debugging features in the editor (such as viewing ``print()`` " "output). You can work this around by changing the debug port used by the " "project in the Editor Settings (**Network > Debug > Remote Port**). The " "default is ``6007``; try another value that is greater than ``1024``, such " "as ``7007``." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:85 msgid "The Godot editor appears frozen after clicking the system console" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:87 msgid "" "When running Godot on Windows with the system console enabled, you can " "accidentally enable *selection mode* by clicking inside the command window. " "This Windows-specific behavior pauses the application to let you select text " "inside the system console. Godot cannot override this system-specific " "behavior." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:92 msgid "" "To solve this, select the system console window and press Enter to leave " "selection mode." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:96 msgid "" "The Godot editor's macOS dock icon gets duplicated every time it is manually " "moved" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:98 msgid "" "If you open the Godot editor and manually change the position of the dock " "icon, then restart the editor, you will get a duplicate dock icon all the " "way to the right of the dock." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:102 msgid "" "This is due to a design limitation of the macOS dock. The only known way to " "resolve this would be to merge the project manager and editor into a single " "process, which means the project manager would no longer spawn a separate " "process when starting the editor. While using a single process instance " "would bring several benefits, it isn't planned to be done in the near future " "due to the complexity of the task." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:109 msgid "" "To avoid this issue, keep the Godot editor's dock icon at its default " "location as created by macOS." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:113 msgid "" "Some text such as \"NO DC\" appears in the top-left corner of the Project " "Manager and editor window" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:115 msgid "" "This is caused by the NVIDIA graphics driver injecting an overlay to display " "information." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:117 msgid "" "To disable this overlay on Windows, restore your graphics driver settings to " "the default values in the NVIDIA Control Panel." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:120 msgid "" "To disable this overlay on Linux, open ``nvidia-settings``, go to **X Screen " "0 > OpenGL Settings** then uncheck **Enable Graphics API Visual Indicator**." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:124 msgid "The editor or project appears overly sharp or blurry" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:130 msgid "" "Correct appearance (left), oversharpened appearance due to graphics driver " "sharpening (right)" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:132 msgid "" "If the editor or project appears overly sharp, this is likely due to image " "sharpening being forced on all Vulkan or OpenGL applications by your " "graphics driver. You can disable this behavior in the graphics driver's " "control panel:" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:136 msgid "" "**NVIDIA (Windows):** Open the start menu and choose **NVIDIA Control " "Panel**. Open the **Manage 3D settings** tab on the left. In the list in the " "middle, scroll to **Image Sharpening** and set it to **Sharpening Off**." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:139 msgid "" "**AMD (Windows):** Open the start menu and choose **AMD Software**. Click " "the settings \"cog\" icon in the top-right corner. Go to the **Graphics** " "tab then disable **Radeon Image Sharpening**." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:143 msgid "" "If the editor or project appears overly blurry, this is likely due to :abbr:" "`FXAA (Fast Approximate AntiAliasing)` being forced on all Vulkan or OpenGL " "applications by your graphics driver." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:147 msgid "" "**NVIDIA (Windows):** Open the start menu and choose **NVIDIA Control " "Panel**. Open the **Manage 3D settings** tab on the left. In the list in the " "middle, scroll to **Fast Approximate Antialiasing** and set it to " "**Application Controlled**." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:151 msgid "" "**NVIDIA (Linux):** Open the applications menu and choose **NVIDIA X Server " "Settings**. Select to **Antialiasing Settings** on the left, then uncheck " "**Enable FXAA**." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:154 msgid "" "**AMD (Windows):** Open the start menu and choose **AMD Software**. Click " "the settings \"cog\" icon in the top-right corner. Go to the **Graphics** " "tab, scroll to the bottom and click **Advanced** to unfold its settings. " "Disable **Morphological Anti-Aliasing**." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:159 msgid "" "Third-party vendor-independent utilities such as vkBasalt may also force " "sharpening or FXAA on all Vulkan applications. You may want to check their " "configuration as well." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:163 msgid "" "After changing options in the graphics driver or third-party utilities, " "restart Godot to make the changes effective." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:166 msgid "" "If you still wish to force sharpening or FXAA on other applications, it's " "recommended to do so on a per-application basis using the application " "profiles system provided by graphics drivers' control panels." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:171 msgid "The editor or project appears to have washed out colors" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:173 msgid "" "On Windows, this is usually caused by incorrect OS or monitor settings, as " "Godot currently does not support :abbr:`HDR (High Dynamic Range)` *output* " "(even though it may internally render in HDR)." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:177 msgid "" "As `most displays are not designed to display SDR content in HDR mode " "`__, it is recommended to " "disable HDR in the Windows settings when not running applications that use " "HDR output. On Windows 11, this can be done by pressing :kbd:`Windows + Alt " "+ B` (this shortcut is part of the Xbox Game Bar app). To toggle HDR " "automatically based on applications currently running, you can use " "`AutoActions `__." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:184 msgid "" "If you insist on leaving HDR enabled, it is possible to somewhat improve the " "result by ensuring the display is configured to use :abbr:`HGIG (HDR Gaming " "Interest Group)` tonemapping (as opposed to :abbr:`DTM (Dynamic Tone " "Mapping)`), then `using the Windows HDR calibration app `__. It is also " "strongly recommended to use Windows 11 instead of Windows 10 when using HDR. " "The end result will still likely be inferior to disabling HDR on the " "display, though." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:191 msgid "Support for HDR *output* is planned in a future release." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:194 msgid "" "The editor/project freezes or displays glitched visuals after resuming the " "PC from suspend" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:196 msgid "" "This is a known issue on Linux with NVIDIA graphics when using the " "proprietary driver. There is no definitive fix yet, as suspend on Linux + " "NVIDIA is often buggy when OpenGL or Vulkan is involved. The Compatibility " "rendering method (which uses OpenGL) is generally less prone to suspend-" "related issues compared to the Forward+ and Forward Mobile rendering methods " "(which use Vulkan)." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:202 msgid "" "The NVIDIA driver offers an *experimental* `option to preserve video memory " "after suspend `__ which may resolve " "this issue. This option has been reported to work better with more recent " "NVIDIA driver versions." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:207 msgid "" "To avoid losing work, save scenes in the editor before putting the PC to " "sleep." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:210 msgid "" "The project works when run from the editor, but fails to load some files " "when running from an exported copy" msgstr "" #: ../../docs/tutorials/troubleshooting.rst:212 msgid "" "This is usually caused by forgetting to specify a filter for non-resource " "files in the Export dialog. By default, Godot will only include actual " "*resources* into the PCK file. Some files commonly used, such as JSON files, " "are not considered resources. For example, if you load ``test.json`` in the " "exported project, you need to specify ``*.json`` in the non-resource export " "filter. See :ref:`doc_exporting_projects_export_mode` for more information." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:219 msgid "" "Also, note that files and folders whose names begin with a period will never " "be included in the exported project. This is done to prevent version control " "folders like ``.git`` from being included in the exported PCK file." msgstr "" #: ../../docs/tutorials/troubleshooting.rst:223 msgid "" "On Windows, this can also be due to :ref:`case sensitivity " "` issues. If you reference a " "resource in your script with a different case than on the filesystem, " "loading will fail once you export the project. This is because the virtual " "PCK filesystem is case-sensitive, while Windows's filesystem is case-" "insensitive by default." msgstr "" #: ../../docs/tutorials/editor/index.rst:4 #, fuzzy msgid "Editor introduction" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/index.rst:6 msgid "" "In this section, we cover the Godot editor in general, from its interface to " "using it with the command line." msgstr "" #: ../../docs/tutorials/editor/index.rst:10 #, fuzzy msgid "Editor's interface" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/index.rst:12 msgid "" "The following pages explain how to use the various windows, workspaces, and " "docks that make up the Godot editor. We cover some specific editors' " "interface in other sections where appropriate. For example, the :ref:" "`animation editor `." msgstr "" #: ../../docs/tutorials/editor/index.rst:28 msgid "Android editor" msgstr "" #: ../../docs/tutorials/editor/index.rst:30 msgid "" "Godot offers a native port of the editor running entirely on Android " "devices. The Android port can be downloaded from the `Android Downloads page " "`__. While we strive for feature " "parity with the Desktop version of the editor, the Android port has a " "certain amount of caveats you should be aware of." msgstr "" #: ../../docs/tutorials/editor/index.rst:42 #, fuzzy msgid "Web editor" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/index.rst:44 msgid "" "Godot offers an HTML5 version of the editor running entirely in your " "browser. No download is required to use it, but it has a certain amount of " "caveats you should be aware of." msgstr "" #: ../../docs/tutorials/editor/index.rst:55 #, fuzzy msgid "Advanced features" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/index.rst:57 msgid "" "The articles below focus on advanced features useful for experienced " "developers, such as calling Godot from the command line and using an " "external text editor like Visual Studio Code or Emacs." msgstr "" #: ../../docs/tutorials/editor/index.rst:69 #: ../../docs/tutorials/editor/managing_editor_features.rst:6 #, fuzzy msgid "Managing editor features" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/index.rst:71 msgid "" "Godot allows you to remove features from the editor. This may be useful if " "you're an educator trying to ease students into the editor slowly, or if " "you're working on a project that's only 2D or only 3D and don't want to see " "what you don't need." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:4 #: ../../docs/tutorials/migrating/upgrading_to_godot_4.rst:116 #, fuzzy msgid "Using the Project Manager" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/project_manager.rst:6 msgid "" "When you launch Godot, the first window you see is the Project Manager. It " "lets you create, remove, import, or play game projects." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:11 msgid "" "In the window's top-right corner, a drop-down menu allows you to change the " "editor's language." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:19 #, fuzzy msgid "Creating and importing projects" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/project_manager.rst:21 #, fuzzy msgid "To create a new project:" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/project_manager.rst:23 msgid "Click the **New** button on the top-left of the window." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:24 msgid "" "Give the project a name, choose an empty folder on your computer to save the " "files, and select a rendering backend." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:26 msgid "" "Click the **Create & Edit** button to create the project folder and open it " "in the editor." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:31 #, fuzzy msgid "Using the file browser" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/project_manager.rst:33 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/tutorials/editor/project_manager.rst:38 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 to create an " "empty folder based on your project's name." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:43 #, fuzzy msgid "Opening and importing projects" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/project_manager.rst:45 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/tutorials/editor/project_manager.rst:50 msgid "" "You can similarly import existing projects using the **Import** button. " "Locate the folder that contains the project or the **project.godot** file to " "import and edit it." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:56 msgid "When the folder path is correct, you'll see a green checkmark." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:61 #, fuzzy msgid "Downloading demos and templates" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/project_manager.rst:63 msgid "" "From the **Asset Library Projects** tab you can download open source project " "templates and demos from the :ref:`Asset Library ` to " "help you get started faster." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:67 msgid "To download a demo or template:" msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:69 msgid "Click on its title." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:70 msgid "On the page that opens, click the download button." msgstr "" #: ../../docs/tutorials/editor/project_manager.rst:71 msgid "" "Once it finished downloading, click install and choose where you want to " "save the project." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:6 #, fuzzy msgid "The Inspector" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/inspector_dock.rst:8 msgid "" "This page explains how the Inspector dock works in-depth. You will learn how " "to edit properties, fold and unfold areas, use the search bar, and more." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:10 msgid "This page is a work-in-progress." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:13 msgid "Overview of the interface" msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:15 msgid "Let's start by looking at the dock's main parts." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:19 msgid "At the top are the file and navigation buttons." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:23 msgid "" "Below it, you can find the selected node's name, its type, and the tools " "menu on the right side." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:27 msgid "" "If you click the tool menu icon, a drop-down menu offers some view and edit " "options." msgstr "" #: ../../docs/tutorials/editor/inspector_dock.rst:31 msgid "" "Then comes the search bar. Type anything in it to filter displayed " "properties. Delete the text to clear the search." msgstr "" #: ../../docs/tutorials/editor/project_settings.rst:6 #, fuzzy msgid "Project Settings" msgstr "Uvod / Početak" #: ../../docs/tutorials/editor/project_settings.rst:8 msgid "" "This page explains how to use the Project Settings window. If you would like " "to access and modify project settings via code, see :ref:`ProjectSettings " "`." msgstr "" #: ../../docs/tutorials/editor/project_settings.rst:10 msgid "" "Godot stores the project settings in a project.godot file, a plain text file " "in INI format. There are dozens of settings you can change to control a " "project's execution. To simplify this process, Godot provides a project " "settings dialog, which acts as a front-end to editing a project.godot file." msgstr "" #: ../../docs/tutorials/editor/project_settings.rst:12 #, fuzzy msgid "To access that dialog, select Project -> Project Settings." msgstr "Uvod / Početak" #: ../../docs/tutorials/editor/project_settings.rst:14 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/tutorials/editor/project_settings.rst:16 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 appears to the left of its name. This means that the property will be " "saved in the project.godot file and remembered." msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:-1 msgid "cheatsheet, cheat sheet, shortcut" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:9 msgid "Default editor shortcuts" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:10 msgid "" "Many of Godot Editor functions can be executed with keyboard shortcuts. This " "page lists functions which have associated shortcuts by default, but many " "others are available for customization in editor settings as well. To change " "keys associated with these and other actions navigate to ``Editor -> Editor " "Settings -> Shortcuts``." msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:15 msgid "" "While some actions are universal, a lot of shortcuts are specific to " "individual tools. For this reason it is possible for some key combinations " "to be assigned to more than one function. The correct action will be " "performed depending on the context." msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:20 msgid "" "While Windows and Linux builds of the editor share most of the default " "settings, some shortcuts may differ for macOS version. This is done for " "better integration of the editor into macOS ecosystem. Users fluent with " "standard shortcuts on that OS should find Godot Editor's default key mapping " "intuitive." msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:26 msgid "General Editor Actions" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:29 #: ../../docs/tutorials/editor/default_key_mapping.rst:94 #: ../../docs/tutorials/editor/default_key_mapping.rst:147 #: ../../docs/tutorials/editor/default_key_mapping.rst:222 #: ../../docs/tutorials/editor/default_key_mapping.rst:303 #: ../../docs/tutorials/editor/default_key_mapping.rst:350 #: ../../docs/tutorials/editor/default_key_mapping.rst:361 #: ../../docs/tutorials/editor/default_key_mapping.rst:374 #: ../../docs/tutorials/editor/default_key_mapping.rst:405 #: ../../docs/tutorials/editor/default_key_mapping.rst:418 #: ../../docs/tutorials/editor/default_key_mapping.rst:441 #: ../../docs/tutorials/editor/default_key_mapping.rst:458 #: ../../docs/tutorials/editor/default_key_mapping.rst:497 msgid "Action name" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:29 #: ../../docs/tutorials/editor/default_key_mapping.rst:94 #: ../../docs/tutorials/editor/default_key_mapping.rst:147 #: ../../docs/tutorials/editor/default_key_mapping.rst:222 #: ../../docs/tutorials/editor/default_key_mapping.rst:303 #: ../../docs/tutorials/editor/default_key_mapping.rst:350 #: ../../docs/tutorials/editor/default_key_mapping.rst:361 #: ../../docs/tutorials/editor/default_key_mapping.rst:374 #: ../../docs/tutorials/editor/default_key_mapping.rst:405 #: ../../docs/tutorials/editor/default_key_mapping.rst:418 #: ../../docs/tutorials/editor/default_key_mapping.rst:441 #: ../../docs/tutorials/editor/default_key_mapping.rst:458 #: ../../docs/tutorials/editor/default_key_mapping.rst:497 #, fuzzy msgid "Windows, Linux" msgstr "Windows" #: ../../docs/tutorials/editor/default_key_mapping.rst:29 #: ../../docs/tutorials/editor/default_key_mapping.rst:94 #: ../../docs/tutorials/editor/default_key_mapping.rst:147 #: ../../docs/tutorials/editor/default_key_mapping.rst:222 #: ../../docs/tutorials/editor/default_key_mapping.rst:303 #: ../../docs/tutorials/editor/default_key_mapping.rst:350 #: ../../docs/tutorials/editor/default_key_mapping.rst:361 #: ../../docs/tutorials/editor/default_key_mapping.rst:374 #: ../../docs/tutorials/editor/default_key_mapping.rst:405 #: ../../docs/tutorials/editor/default_key_mapping.rst:418 #: ../../docs/tutorials/editor/default_key_mapping.rst:441 #: ../../docs/tutorials/editor/default_key_mapping.rst:458 #: ../../docs/tutorials/editor/default_key_mapping.rst:497 #, fuzzy msgid "Editor setting" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/default_key_mapping.rst:31 msgid "Open 2D Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:31 msgid ":kbd:`Ctrl + F1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:31 msgid ":kbd:`Alt + 1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:31 msgid "``editor/editor_2d``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:33 msgid "Open 3D Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:33 #: ../../docs/tutorials/editor/default_key_mapping.rst:422 msgid ":kbd:`Ctrl + F2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:33 msgid ":kbd:`Alt + 2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:33 msgid "``editor/editor_3d``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:35 msgid "Open Script Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:35 msgid ":kbd:`Ctrl + F3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:35 msgid ":kbd:`Alt + 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:35 msgid "``editor/editor_script``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:37 msgid "Search Help" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:37 msgid ":kbd:`F1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:37 msgid ":kbd:`Alt + Space`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:37 msgid "``editor/editor_help``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:39 msgid "Distraction Free Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:39 msgid ":kbd:`Ctrl + Shift + F11`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:39 msgid ":kbd:`Cmd + Ctrl + D`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:39 msgid "``editor/distraction_free_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:41 msgid "Next tab" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:41 msgid ":kbd:`Ctrl + Tab`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:41 msgid ":kbd:`Cmd + Tab`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:41 msgid "``editor/next_tab``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:43 msgid "Previous tab" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:43 msgid ":kbd:`Ctrl + Shift + Tab`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:43 msgid ":kbd:`Cmd + Shift + Tab`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:43 msgid "``editor/prev_tab``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:45 msgid "Filter Files" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:45 msgid ":kbd:`Ctrl + Alt + P`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:45 msgid ":kbd:`Cmd + Alt + P`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:45 msgid "``editor/filter_files``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:47 msgid "Open Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:47 msgid ":kbd:`Ctrl + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:47 msgid ":kbd:`Cmd + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:47 msgid "``editor/open_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:49 msgid "Close Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:49 msgid ":kbd:`Ctrl + Shift + W`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:49 msgid ":kbd:`Cmd + Shift + W`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:49 msgid "``editor/close_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:51 msgid "Reopen Closed Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:51 #: ../../docs/tutorials/editor/default_key_mapping.rst:321 msgid ":kbd:`Ctrl + Shift + T`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:51 #: ../../docs/tutorials/editor/default_key_mapping.rst:321 msgid ":kbd:`Cmd + Shift + T`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:51 msgid "``editor/reopen_closed_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:53 msgid "Save Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:53 msgid ":kbd:`Ctrl + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:53 msgid ":kbd:`Cmd + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:53 msgid "``editor/save_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:55 msgid "Save Scene As" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:55 msgid ":kbd:`Ctrl + Shift + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:55 msgid ":kbd:`Cmd + Shift + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:55 msgid "``editor/save_scene_as``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:57 msgid "Save All Scenes" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:57 #: ../../docs/tutorials/editor/default_key_mapping.rst:325 msgid ":kbd:`Ctrl + Shift + Alt + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:57 #: ../../docs/tutorials/editor/default_key_mapping.rst:325 msgid ":kbd:`Cmd + Shift + Alt + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:57 msgid "``editor/save_all_scenes``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:59 msgid "Quick Open" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:59 msgid ":kbd:`Shift + Alt + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:59 msgid "``editor/quick_open``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:61 msgid "Quick Open Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:61 msgid ":kbd:`Ctrl + Shift + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:61 msgid ":kbd:`Cmd + Shift + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:61 msgid "``editor/quick_open_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:63 msgid "Quick Open Script" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:63 msgid ":kbd:`Ctrl + Alt + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:63 msgid ":kbd:`Cmd + Alt + O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:63 msgid "``editor/quick_open_script``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:65 #: ../../docs/tutorials/editor/default_key_mapping.rst:244 msgid "Undo" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:65 #: ../../docs/tutorials/editor/default_key_mapping.rst:244 msgid ":kbd:`Ctrl + Z`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:65 #: ../../docs/tutorials/editor/default_key_mapping.rst:244 msgid ":kbd:`Cmd + Z`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:65 msgid "``editor/undo``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:67 #: ../../docs/tutorials/editor/default_key_mapping.rst:246 msgid "Redo" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:67 msgid ":kbd:`Ctrl + Shift + Z`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:67 msgid ":kbd:`Cmd + Shift + Z`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:67 msgid "``editor/redo``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:69 msgid "Quit" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:69 msgid ":kbd:`Ctrl + Q`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:69 msgid ":kbd:`Cmd + Q`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:69 msgid "``editor/file_quit``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:71 msgid "Quit to Project List" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:71 msgid ":kbd:`Ctrl + Shift + Q`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:71 msgid ":kbd:`Shift + Alt + Q`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:71 msgid "``editor/quit_to_project_list``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:73 msgid "Take Screenshot" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:73 msgid ":kbd:`Ctrl + F12`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:73 msgid ":kbd:`Cmd + F12`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:73 msgid "``editor/take_screenshot``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:75 msgid "Toggle Fullscreen" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:75 msgid ":kbd:`Shift + F11`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:75 msgid ":kbd:`Cmd + Ctrl + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:75 msgid "``editor/fullscreen_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:77 msgid "Play" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:77 #: ../../docs/tutorials/editor/default_key_mapping.rst:382 msgid ":kbd:`F5`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:77 #: ../../docs/tutorials/editor/default_key_mapping.rst:280 msgid ":kbd:`Cmd + B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:77 msgid "``editor/play``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:79 msgid "Pause Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:79 msgid ":kbd:`F7`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:79 msgid ":kbd:`Cmd + Ctrl + Y`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:79 msgid "``editor/pause_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:81 msgid "Stop" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:81 msgid ":kbd:`F8`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:81 #: ../../docs/tutorials/editor/default_key_mapping.rst:292 msgid ":kbd:`Cmd + .`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:81 msgid "``editor/stop``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:83 msgid "Play Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:83 msgid ":kbd:`F6`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:83 msgid ":kbd:`Cmd + R`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:83 msgid "``editor/play_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:85 msgid "Play Custom Scene" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:85 msgid ":kbd:`Ctrl + Shift + F5`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:85 #: ../../docs/tutorials/editor/default_key_mapping.rst:242 #: ../../docs/tutorials/editor/default_key_mapping.rst:327 msgid ":kbd:`Cmd + Shift + R`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:85 msgid "``editor/play_custom_scene``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:87 msgid "Expand Bottom Panel" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:87 msgid ":kbd:`Shift + F12`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:87 msgid "``editor/bottom_panel_expand``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:91 msgid "2D / Canvas Item Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:96 #: ../../docs/tutorials/editor/default_key_mapping.rst:339 msgid "Zoom In" msgstr "Uveličaj" #: ../../docs/tutorials/editor/default_key_mapping.rst:96 #: ../../docs/tutorials/editor/default_key_mapping.rst:339 msgid ":kbd:`Ctrl + =`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:96 #: ../../docs/tutorials/editor/default_key_mapping.rst:339 msgid ":kbd:`Cmd + =`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:96 msgid "``canvas_item_editor/zoom_plus``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:98 #: ../../docs/tutorials/editor/default_key_mapping.rst:341 msgid "Zoom Out" msgstr "Umanji" #: ../../docs/tutorials/editor/default_key_mapping.rst:98 #: ../../docs/tutorials/editor/default_key_mapping.rst:341 msgid ":kbd:`Ctrl + -`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:98 #: ../../docs/tutorials/editor/default_key_mapping.rst:341 msgid ":kbd:`Cmd + -`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:98 msgid "``canvas_item_editor/zoom_minus``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:100 msgid "Zoom Reset" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:100 #: ../../docs/tutorials/editor/default_key_mapping.rst:343 msgid ":kbd:`Ctrl + 0`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:100 #: ../../docs/tutorials/editor/default_key_mapping.rst:343 msgid ":kbd:`Cmd + 0`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:100 msgid "``canvas_item_editor/zoom_reset``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:102 msgid "Pan View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:102 msgid ":kbd:`Space`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:102 msgid "``canvas_item_editor/pan_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:104 #: ../../docs/tutorials/editor/default_key_mapping.rst:167 msgid "Select Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:104 #: ../../docs/tutorials/editor/default_key_mapping.rst:161 #: ../../docs/tutorials/editor/default_key_mapping.rst:167 msgid ":kbd:`Q`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:104 msgid "``canvas_item_editor/select_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:106 #: ../../docs/tutorials/editor/default_key_mapping.rst:169 msgid "Move Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:106 #: ../../docs/tutorials/editor/default_key_mapping.rst:155 #: ../../docs/tutorials/editor/default_key_mapping.rst:169 msgid ":kbd:`W`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:106 msgid "``canvas_item_editor/move_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:108 #: ../../docs/tutorials/editor/default_key_mapping.rst:171 msgid "Rotate Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:108 #: ../../docs/tutorials/editor/default_key_mapping.rst:159 #: ../../docs/tutorials/editor/default_key_mapping.rst:171 #: ../../docs/tutorials/editor/default_key_mapping.rst:482 msgid ":kbd:`E`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:108 msgid "``canvas_item_editor/rotate_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:110 #: ../../docs/tutorials/editor/default_key_mapping.rst:173 msgid "Scale Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:110 #: ../../docs/tutorials/editor/default_key_mapping.rst:157 #: ../../docs/tutorials/editor/default_key_mapping.rst:460 msgid ":kbd:`S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:110 msgid "``canvas_item_editor/scale_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:112 msgid "Ruler Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:112 #: ../../docs/tutorials/editor/default_key_mapping.rst:173 #: ../../docs/tutorials/editor/default_key_mapping.rst:476 msgid ":kbd:`R`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:112 msgid "``canvas_item_editor/ruler_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:114 msgid "Use Smart Snap" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:114 msgid ":kbd:`Shift + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:114 msgid "``canvas_item_editor/use_smart_snap``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:116 msgid "Use Grid Snap" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:116 msgid ":kbd:`Shift + G`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:116 msgid "``canvas_item_editor/use_grid_snap``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:118 msgid "Multiply grid step by 2" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:118 msgid ":kbd:`Num *`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:118 msgid "``canvas_item_editor/multiply_grid_step``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:120 msgid "Divide grid step by 2" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:120 msgid ":kbd:`Num /`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:120 msgid "``canvas_item_editor/divide_grid_step``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:122 msgid "Always Show Grid" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:122 msgid ":kbd:`G`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:122 msgid "``canvas_item_editor/show_grid``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:124 msgid "Show Helpers" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:124 msgid ":kbd:`H`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:124 msgid "``canvas_item_editor/show_helpers``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:126 msgid "Show Guides" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:126 #: ../../docs/tutorials/editor/default_key_mapping.rst:177 msgid ":kbd:`Y`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:126 msgid "``canvas_item_editor/show_guides``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:128 msgid "Center Selection" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:128 #: ../../docs/tutorials/editor/default_key_mapping.rst:199 msgid ":kbd:`F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:128 msgid "``canvas_item_editor/center_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:130 msgid "Frame Selection" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:130 #: ../../docs/tutorials/editor/default_key_mapping.rst:149 msgid ":kbd:`Shift + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:130 msgid "``canvas_item_editor/frame_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:132 msgid "Preview Canvas Scale" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:132 msgid ":kbd:`Ctrl + Shift + P`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:132 msgid ":kbd:`Cmd + Shift + P`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:132 msgid "``canvas_item_editor/preview_canvas_scale``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:134 msgid "Insert Key" msgstr "Unesi Ključ" #: ../../docs/tutorials/editor/default_key_mapping.rst:134 msgid ":kbd:`Ins`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:134 msgid "``canvas_item_editor/anim_insert_key``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:136 msgid "Insert Key (Existing Tracks)" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:136 msgid ":kbd:`Ctrl + Ins`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:136 msgid ":kbd:`Cmd + Ins`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:136 msgid "``canvas_item_editor/anim_insert_key_existing_tracks``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:138 msgid "Make Custom Bones from Nodes" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:138 #: ../../docs/tutorials/editor/default_key_mapping.rst:282 msgid ":kbd:`Ctrl + Shift + B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:138 #: ../../docs/tutorials/editor/default_key_mapping.rst:282 #: ../../docs/tutorials/editor/default_key_mapping.rst:288 msgid ":kbd:`Cmd + Shift + B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:138 msgid "``canvas_item_editor/skeleton_make_bones``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:140 msgid "Clear Pose" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:140 msgid ":kbd:`Shift + K`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:140 msgid "``canvas_item_editor/anim_clear_pose``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:144 msgid "3D / Spatial Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:149 msgid "Toggle Freelook" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:149 msgid "``spatial_editor/freelook_toggle``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:151 msgid "Freelook Left" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:151 msgid ":kbd:`A`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:151 msgid "``spatial_editor/freelook_left``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:153 msgid "Freelook Right" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:153 #: ../../docs/tutorials/editor/default_key_mapping.rst:472 msgid ":kbd:`D`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:153 msgid "``spatial_editor/freelook_right``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:155 msgid "Freelook Forward" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:155 msgid "``spatial_editor/freelook_forward``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:157 msgid "Freelook Backwards" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:157 msgid "``spatial_editor/freelook_backwards``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:159 msgid "Freelook Up" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:159 msgid "``spatial_editor/freelook_up``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:161 msgid "Freelook Down" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:161 msgid "``spatial_editor/freelook_down``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:163 msgid "Freelook Speed Modifier" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:163 msgid ":kbd:`Shift`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:163 msgid "``spatial_editor/freelook_speed_modifier``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:165 msgid "Freelook Slow Modifier" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:165 msgid ":kbd:`Alt`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:165 msgid "``spatial_editor/freelook_slow_modifier``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:167 msgid "``spatial_editor/tool_select``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:169 msgid "``spatial_editor/tool_move``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:171 msgid "``spatial_editor/tool_rotate``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:173 msgid "``spatial_editor/tool_scale``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:175 msgid "Use Local Space" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:175 msgid ":kbd:`T`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:175 msgid "``spatial_editor/local_coords``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:177 msgid "Use Snap" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:177 msgid "``spatial_editor/snap``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:179 msgid "Snap Object to Floor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:179 #: ../../docs/tutorials/editor/default_key_mapping.rst:499 msgid ":kbd:`PgDown`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:179 msgid "``spatial_editor/snap_to_floor``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:181 msgid "Top View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:181 msgid ":kbd:`Num 7`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:181 msgid "``spatial_editor/top_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:183 msgid "Bottom View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:183 msgid ":kbd:`Alt + Num 7`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:183 msgid "``spatial_editor/bottom_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:185 msgid "Front View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:185 msgid ":kbd:`Num 1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:185 msgid "``spatial_editor/front_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:187 msgid "Rear View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:187 msgid ":kbd:`Alt + Num 1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:187 msgid "``spatial_editor/rear_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:189 msgid "Right View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:189 msgid ":kbd:`Num 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:189 msgid "``spatial_editor/right_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:191 msgid "Left View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:191 msgid ":kbd:`Alt + Num 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:191 msgid "``spatial_editor/left_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:193 msgid "Switch Perspective/Orthogonal View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:193 msgid ":kbd:`Num 5`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:193 msgid "``spatial_editor/switch_perspective_orthogonal``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:195 msgid "Insert Animation Key" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:195 msgid ":kbd:`K`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:195 msgid "``spatial_editor/insert_anim_key``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:197 msgid "Focus Origin" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:197 msgid ":kbd:`O`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:197 msgid "``spatial_editor/focus_origin``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:199 msgid "Focus Selection" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:199 msgid "``spatial_editor/focus_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:201 msgid "Align Transform with View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:201 msgid ":kbd:`Ctrl + Alt + M`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:201 msgid ":kbd:`Cmd + Alt + M`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:201 msgid "``spatial_editor/align_transform_with_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:203 msgid "Align Rotation with View" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:203 #: ../../docs/tutorials/editor/default_key_mapping.rst:284 msgid ":kbd:`Ctrl + Alt + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:203 msgid ":kbd:`Cmd + Alt + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:203 msgid "``spatial_editor/align_rotation_with_view``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:205 msgid "1 Viewport" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:205 msgid ":kbd:`Ctrl + 1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:205 msgid ":kbd:`Cmd + 1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:205 msgid "``spatial_editor/1_viewport``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:207 msgid "2 Viewports" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:207 msgid ":kbd:`Ctrl + 2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:207 msgid ":kbd:`Cmd + 2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:207 msgid "``spatial_editor/2_viewports``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:209 msgid "2 Viewports (Alt)" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:209 msgid ":kbd:`Ctrl + Alt + 2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:209 msgid ":kbd:`Cmd + Alt + 2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:209 msgid "``spatial_editor/2_viewports_alt``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:211 msgid "3 Viewports" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:211 msgid ":kbd:`Ctrl + 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:211 msgid ":kbd:`Cmd + 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:211 msgid "``spatial_editor/3_viewports``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:213 msgid "3 Viewports (Alt)" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:213 msgid ":kbd:`Ctrl + Alt + 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:213 msgid ":kbd:`Cmd + Alt + 3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:213 msgid "``spatial_editor/3_viewports_alt``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:215 msgid "4 Viewports" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:215 msgid ":kbd:`Ctrl + 4`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:215 msgid ":kbd:`Cmd + 4`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:215 msgid "``spatial_editor/4_viewports``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:219 #, fuzzy msgid "Text Editor" msgstr "Tutorijali" #: ../../docs/tutorials/editor/default_key_mapping.rst:224 msgid "Cut" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:224 #: ../../docs/tutorials/editor/default_key_mapping.rst:462 msgid ":kbd:`Ctrl + X`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:224 #: ../../docs/tutorials/editor/default_key_mapping.rst:462 msgid ":kbd:`Cmd + X`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:224 msgid "``script_text_editor/cut``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:226 msgid "Copy" msgstr "Kopiraj" #: ../../docs/tutorials/editor/default_key_mapping.rst:226 #: ../../docs/tutorials/editor/default_key_mapping.rst:352 #: ../../docs/tutorials/editor/default_key_mapping.rst:407 #: ../../docs/tutorials/editor/default_key_mapping.rst:464 msgid ":kbd:`Ctrl + C`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:226 #: ../../docs/tutorials/editor/default_key_mapping.rst:352 #: ../../docs/tutorials/editor/default_key_mapping.rst:407 #: ../../docs/tutorials/editor/default_key_mapping.rst:464 msgid ":kbd:`Cmd + C`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:226 msgid "``script_text_editor/copy``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:228 msgid "Paste" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:228 #: ../../docs/tutorials/editor/default_key_mapping.rst:466 msgid ":kbd:`Ctrl + V`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:228 #: ../../docs/tutorials/editor/default_key_mapping.rst:466 msgid ":kbd:`Cmd + V`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:228 msgid "``script_text_editor/paste``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:230 msgid "Select All" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:230 #: ../../docs/tutorials/editor/default_key_mapping.rst:420 msgid ":kbd:`Ctrl + A`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:230 #: ../../docs/tutorials/editor/default_key_mapping.rst:420 msgid ":kbd:`Cmd + A`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:230 msgid "``script_text_editor/select_all``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:232 #: ../../docs/tutorials/editor/default_key_mapping.rst:305 msgid "Find" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:232 #: ../../docs/tutorials/editor/default_key_mapping.rst:305 msgid ":kbd:`Ctrl + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:232 #: ../../docs/tutorials/editor/default_key_mapping.rst:305 msgid ":kbd:`Cmd + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:232 msgid "``script_text_editor/find``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:234 #: ../../docs/tutorials/editor/default_key_mapping.rst:307 msgid "Find Next" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:234 #: ../../docs/tutorials/editor/default_key_mapping.rst:307 msgid ":kbd:`F3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:234 msgid ":kbd:`Cmd + G`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:234 msgid "``script_text_editor/find_next``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:236 #: ../../docs/tutorials/editor/default_key_mapping.rst:309 msgid "Find Previous" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:236 #: ../../docs/tutorials/editor/default_key_mapping.rst:309 msgid ":kbd:`Shift + F3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:236 msgid ":kbd:`Cmd + Shift + G`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:236 msgid "``script_text_editor/find_previous``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:238 #: ../../docs/tutorials/editor/default_key_mapping.rst:311 #, fuzzy msgid "Find in Files" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/default_key_mapping.rst:238 #: ../../docs/tutorials/editor/default_key_mapping.rst:311 msgid ":kbd:`Ctrl + Shift + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:238 #: ../../docs/tutorials/editor/default_key_mapping.rst:311 msgid ":kbd:`Cmd + Shift + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:238 msgid "``script_text_editor/find_in_files``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:240 msgid "Replace" msgstr "Zameni" #: ../../docs/tutorials/editor/default_key_mapping.rst:240 msgid ":kbd:`Ctrl + R`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:240 msgid ":kbd:`Alt + Cmd + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:240 msgid "``script_text_editor/replace``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:242 msgid "Replace in Files" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:242 #: ../../docs/tutorials/editor/default_key_mapping.rst:327 msgid ":kbd:`Ctrl + Shift + R`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:242 msgid "``script_text_editor/replace_in_files``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:244 msgid "``script_text_editor/undo``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:246 msgid ":kbd:`Ctrl + Y`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:246 msgid ":kbd:`Cmd + Y`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:246 msgid "``script_text_editor/redo``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:248 #: ../../docs/tutorials/editor/default_key_mapping.rst:313 #: ../../docs/tutorials/editor/default_key_mapping.rst:432 msgid "Move Up" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:248 #: ../../docs/tutorials/editor/default_key_mapping.rst:380 msgid ":kbd:`Alt + Up Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:248 msgid "``script_text_editor/move_up``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:250 #: ../../docs/tutorials/editor/default_key_mapping.rst:315 #: ../../docs/tutorials/editor/default_key_mapping.rst:434 msgid "Move Down" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:250 msgid ":kbd:`Alt + Down Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:250 msgid "``script_text_editor/move_down``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:252 msgid "Delete Line" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:252 #: ../../docs/tutorials/editor/default_key_mapping.rst:354 msgid ":kbd:`Ctrl + Shift + K`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:252 #: ../../docs/tutorials/editor/default_key_mapping.rst:354 msgid ":kbd:`Cmd + Shift + K`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:252 msgid "``script_text_editor/delete_line``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:254 msgid "Toggle Comment" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:254 msgid ":kbd:`Ctrl + K`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:254 msgid ":kbd:`Cmd + K`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:254 msgid "``script_text_editor/toggle_comment``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:256 msgid "Fold/Unfold Line" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:256 #: ../../docs/tutorials/editor/default_key_mapping.rst:386 msgid ":kbd:`Alt + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:256 msgid ":kbd:`Ctrl + Cmd + F`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:256 msgid "``script_text_editor/toggle_fold_line``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:258 #: ../../docs/tutorials/editor/default_key_mapping.rst:443 msgid "Duplicate Selection" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:258 #: ../../docs/tutorials/editor/default_key_mapping.rst:445 msgid ":kbd:`Ctrl + Shift + D`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:258 msgid ":kbd:`Cmd + Shift + C`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:258 msgid "``script_text_editor/duplicate_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:260 msgid "Complete Symbol" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:260 msgid ":kbd:`Ctrl + Space`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:260 msgid "``script_text_editor/complete_symbol``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:262 msgid "Evaluate Selection" msgstr "Proceni Označeno" #: ../../docs/tutorials/editor/default_key_mapping.rst:262 msgid ":kbd:`Ctrl + Shift + E`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:262 msgid ":kbd:`Cmd + Shift + E`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:262 msgid "``script_text_editor/evaluate_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:264 msgid "Trim Trailing Whitespace" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:264 msgid ":kbd:`Ctrl + Alt + T`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:264 msgid ":kbd:`Cmd + Alt + T`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:264 msgid "``script_text_editor/trim_trailing_whitespace``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:266 msgid "Uppercase" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:266 msgid ":kbd:`Shift + F4`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:266 msgid "``script_text_editor/convert_to_uppercase``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:268 msgid "Lowercase" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:268 msgid ":kbd:`Shift + F5`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:268 msgid "``script_text_editor/convert_to_lowercase``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:270 msgid "Capitalize" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:270 msgid ":kbd:`Shift + F6`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:270 msgid "``script_text_editor/capitalize``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:272 msgid "Convert Indent to Spaces" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:272 msgid ":kbd:`Ctrl + Shift + Y`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:272 msgid ":kbd:`Cmd + Shift + Y`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:272 msgid "``script_text_editor/convert_indent_to_spaces``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:274 msgid "Convert Indent to Tabs" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:274 msgid ":kbd:`Ctrl + Shift + I`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:274 msgid ":kbd:`Cmd + Shift + I`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:274 msgid "``script_text_editor/convert_indent_to_tabs``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:276 msgid "Auto Indent" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:276 msgid ":kbd:`Ctrl + I`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:276 msgid ":kbd:`Cmd + I`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:276 msgid "``script_text_editor/auto_indent``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:278 msgid "Toggle Bookmark" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:278 msgid ":kbd:`Ctrl + Alt + B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:278 msgid ":kbd:`Cmd + Alt + B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:278 msgid "``script_text_editor/toggle_bookmark``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:280 msgid "Go to Next Bookmark" msgstr "Idi na Sledeći Obeleživač" #: ../../docs/tutorials/editor/default_key_mapping.rst:280 msgid ":kbd:`Ctrl + B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:280 msgid "``script_text_editor/goto_next_bookmark``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:282 msgid "Go to Previous Bookmark" msgstr "Idi na Prethodni Obeleživač" #: ../../docs/tutorials/editor/default_key_mapping.rst:282 msgid "``script_text_editor/goto_previous_bookmark``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:284 #, fuzzy msgid "Go to Function" msgstr "Uvod" #: ../../docs/tutorials/editor/default_key_mapping.rst:284 msgid ":kbd:`Ctrl + Cmd + J`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:284 msgid "``script_text_editor/goto_function``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:286 msgid "Go to Line" msgstr "Idi na Liniju" #: ../../docs/tutorials/editor/default_key_mapping.rst:286 msgid ":kbd:`Ctrl + L`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:286 msgid ":kbd:`Cmd + L`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:286 msgid "``script_text_editor/goto_line``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:288 msgid "Toggle Breakpoint" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:288 msgid ":kbd:`F9`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:288 msgid "``script_text_editor/toggle_breakpoint``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:290 msgid "Remove All Breakpoints" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:290 msgid ":kbd:`Ctrl + Shift + F9`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:290 msgid ":kbd:`Cmd + Shift + F9`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:290 msgid "``script_text_editor/remove_all_breakpoints``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:292 msgid "Go to Next Breakpoint" msgstr "Idi na Sledeću Tačku Prekida" #: ../../docs/tutorials/editor/default_key_mapping.rst:292 msgid ":kbd:`Ctrl + .`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:292 msgid "``script_text_editor/goto_next_breakpoint``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:294 msgid "Go to Previous Breakpoint" msgstr "Idi na Prethodnu Tačku Prekida" #: ../../docs/tutorials/editor/default_key_mapping.rst:294 msgid ":kbd:`Ctrl + ,`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:294 msgid ":kbd:`Cmd + ,`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:294 msgid "``script_text_editor/goto_previous_breakpoint``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:296 msgid "Contextual Help" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:296 msgid ":kbd:`Alt + F1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:296 msgid ":kbd:`Alt + Shift + Space`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:296 msgid "``script_text_editor/contextual_help``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:300 msgid "Script Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:305 msgid "``script_editor/find``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:307 msgid "``script_editor/find_next``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:309 msgid "``script_editor/find_previous``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:311 msgid "``script_editor/find_in_files``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:313 msgid ":kbd:`Shift + Alt + Up Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:313 msgid "``script_editor/window_move_up``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:315 msgid ":kbd:`Shift + Alt + Down Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:315 msgid "``script_editor/window_move_down``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:317 msgid "Next Script" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:317 msgid ":kbd:`Ctrl + Shift + .`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:317 msgid ":kbd:`Cmd + Shift + .`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:317 msgid "``script_editor/next_script``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:319 msgid "Previous Script" msgstr "Prethodna Skripta" #: ../../docs/tutorials/editor/default_key_mapping.rst:319 msgid ":kbd:`Ctrl + Shift + ,`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:319 msgid ":kbd:`Cmd + Shift + ,`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:319 msgid "``script_editor/prev_script``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:321 msgid "Reopen Closed Script" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:321 msgid "``script_editor/reopen_closed_script``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:323 msgid "Save" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:323 msgid ":kbd:`Ctrl + Alt + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:323 msgid ":kbd:`Cmd + Alt + S`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:323 msgid "``script_editor/save``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:325 msgid "Save All" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:325 msgid "``script_editor/save_all``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:327 msgid "Soft Reload Script" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:327 msgid "``script_editor/reload_script_soft``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:329 msgid "History Previous" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:329 #: ../../docs/tutorials/editor/default_key_mapping.rst:376 msgid ":kbd:`Alt + Left Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:329 msgid "``script_editor/history_previous``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:331 msgid "History Next" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:331 #: ../../docs/tutorials/editor/default_key_mapping.rst:378 msgid ":kbd:`Alt + Right Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:331 msgid "``script_editor/history_next``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:333 msgid "Close" msgstr "Zatvori" #: ../../docs/tutorials/editor/default_key_mapping.rst:333 msgid ":kbd:`Ctrl + W`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:333 msgid ":kbd:`Cmd + W`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:333 msgid "``script_editor/close_file``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:335 #: ../../docs/contributing/development/compiling/compiling_for_ios.rst:90 msgid "Run" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:335 msgid ":kbd:`Ctrl + Shift + X`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:335 msgid ":kbd:`Cmd + Shift + X`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:335 msgid "``script_editor/run_file``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:337 msgid "Toggle Scripts Panel" msgstr "Uključi/Isključi Panel sa Skriptama" #: ../../docs/tutorials/editor/default_key_mapping.rst:337 msgid ":kbd:`Ctrl + \\\\`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:337 msgid ":kbd:`Cmd + \\\\`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:337 msgid "``script_editor/toggle_scripts_panel``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:339 msgid "``script_editor/zoom_in``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:341 msgid "``script_editor/zoom_out``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:343 msgid "Reset Zoom" msgstr "Resetuj Uveličavanje" #: ../../docs/tutorials/editor/default_key_mapping.rst:343 msgid "``script_editor/reset_zoom``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:347 msgid "Editor Output" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:352 #: ../../docs/tutorials/editor/default_key_mapping.rst:464 msgid "Copy Selection" msgstr "Kopiraj Označeno" #: ../../docs/tutorials/editor/default_key_mapping.rst:352 msgid "``editor/copy_output``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:354 msgid "Clear Output" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:354 msgid "``editor/clear_output``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:358 #: ../../docs/tutorials/scripting/debug/debugger_panel.rst:14 msgid "Debugger" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:363 msgid "Step Into" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:363 msgid ":kbd:`F11`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:363 msgid "``debugger/step_into``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:365 msgid "Step Over" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:365 msgid ":kbd:`F10`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:365 msgid "``debugger/step_over``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:367 msgid "Continue" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:367 msgid ":kbd:`F12`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:367 msgid "``debugger/continue``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:371 msgid "File Dialog" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:376 msgid "Go Back" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:376 msgid "``file_dialog/go_back``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:378 msgid "Go Forward" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:378 msgid "``file_dialog/go_forward``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:380 msgid "Go Up" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:380 msgid "``file_dialog/go_up``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:382 msgid "Refresh" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:382 msgid "``file_dialog/refresh``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:384 msgid "Toggle Hidden Files" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:384 msgid ":kbd:`Ctrl + H`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:384 msgid ":kbd:`Cmd + H`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:384 msgid "``file_dialog/toggle_hidden_files``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:386 msgid "Toggle Favorite" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:386 msgid "``file_dialog/toggle_favorite``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:388 msgid "Toggle Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:388 msgid ":kbd:`Alt + V`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:388 msgid "``file_dialog/toggle_mode``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:390 msgid "Create Folder" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:390 msgid ":kbd:`Ctrl + N`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:390 msgid ":kbd:`Cmd + N`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:390 msgid "``file_dialog/create_folder``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:392 #: ../../docs/tutorials/editor/default_key_mapping.rst:411 #: ../../docs/tutorials/editor/default_key_mapping.rst:426 msgid "Delete" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:392 #: ../../docs/tutorials/editor/default_key_mapping.rst:411 #: ../../docs/tutorials/editor/default_key_mapping.rst:426 #: ../../docs/tutorials/editor/default_key_mapping.rst:447 #: ../../docs/tutorials/editor/default_key_mapping.rst:468 msgid ":kbd:`Del`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:392 #: ../../docs/tutorials/editor/default_key_mapping.rst:411 #: ../../docs/tutorials/editor/default_key_mapping.rst:426 #: ../../docs/tutorials/editor/default_key_mapping.rst:447 #: ../../docs/tutorials/editor/default_key_mapping.rst:468 msgid ":kbd:`Cmd + BkSp`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:392 msgid "``file_dialog/delete``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:394 msgid "Focus Path" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:394 #: ../../docs/tutorials/editor/default_key_mapping.rst:409 #: ../../docs/tutorials/editor/default_key_mapping.rst:430 #: ../../docs/tutorials/editor/default_key_mapping.rst:443 msgid ":kbd:`Ctrl + D`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:394 #: ../../docs/tutorials/editor/default_key_mapping.rst:409 #: ../../docs/tutorials/editor/default_key_mapping.rst:430 #: ../../docs/tutorials/editor/default_key_mapping.rst:443 msgid ":kbd:`Cmd + D`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:394 msgid "``file_dialog/focus_path``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:396 msgid "Move Favorite Up" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:396 #: ../../docs/tutorials/editor/default_key_mapping.rst:432 msgid ":kbd:`Ctrl + Up Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:396 #: ../../docs/tutorials/editor/default_key_mapping.rst:432 msgid ":kbd:`Cmd + Up Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:396 msgid "``file_dialog/move_favorite_up``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:398 msgid "Move Favorite Down" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:398 #: ../../docs/tutorials/editor/default_key_mapping.rst:434 msgid ":kbd:`Ctrl + Down Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:398 #: ../../docs/tutorials/editor/default_key_mapping.rst:434 msgid ":kbd:`Cmd + Down Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:398 msgid "``file_dialog/move_favorite_down``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:402 msgid "FileSystem Dock" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:407 msgid "Copy Path" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:407 msgid "``filesystem_dock/copy_path``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:409 #: ../../docs/tutorials/editor/default_key_mapping.rst:430 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:130 #: ../../docs/tutorials/scripting/c_sharp/c_sharp_collections.rst:219 msgid "Duplicate" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:409 msgid "``filesystem_dock/duplicate``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:411 msgid "``filesystem_dock/delete``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:415 msgid "Scene Tree Dock" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:420 msgid "Add Child Node" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:420 msgid "``scene_tree/add_child_node``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:422 msgid "Batch Rename" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:422 msgid ":kbd:`Cmd + F2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:422 msgid "``scene_tree/batch_rename``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:424 msgid "Copy Node Path" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:424 msgid ":kbd:`Ctrl + Shift + C`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:424 msgid ":kbd:`Cmd + Shift + C`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:424 msgid "``scene_tree/copy_node_path``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:426 msgid "``scene_tree/delete``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:428 msgid "Force Delete" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:428 msgid ":kbd:`Shift + Del`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:428 msgid "``scene_tree/delete_no_confirm``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:430 msgid "``scene_tree/duplicate``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:432 msgid "``scene_tree/move_up``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:434 msgid "``scene_tree/move_down``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:438 msgid "Animation Track Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:443 msgid "``animation_editor/duplicate_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:445 msgid "Duplicate Transposed" msgstr "Dupliraj Transponovanu" #: ../../docs/tutorials/editor/default_key_mapping.rst:445 msgid ":kbd:`Cmd + Shift + D`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:445 msgid "``animation_editor/duplicate_selection_transposed``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:447 #: ../../docs/tutorials/editor/default_key_mapping.rst:468 msgid "Delete Selection" msgstr "Ukloni oznaku" #: ../../docs/tutorials/editor/default_key_mapping.rst:447 msgid "``animation_editor/delete_selection``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:449 msgid "Go to Next Step" msgstr "Idi na Sledeći Korak" #: ../../docs/tutorials/editor/default_key_mapping.rst:449 msgid ":kbd:`Ctrl + Right Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:449 msgid ":kbd:`Cmd + Right Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:449 msgid "``animation_editor/goto_next_step``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:451 msgid "Go to Previous Step" msgstr "Idi na Prethodni Korak" #: ../../docs/tutorials/editor/default_key_mapping.rst:451 msgid ":kbd:`Ctrl + Left Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:451 msgid ":kbd:`Cmd + Left Arrow`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:451 msgid "``animation_editor/goto_prev_step``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:455 msgid "Tile Map Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:460 msgid "Select" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:460 msgid "``tiles_editor/selection_tool``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:462 msgid "Cut Selection" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:462 msgid "``tiles_editor/cut``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:464 msgid "``tiles_editor/copy``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:466 #, fuzzy msgid "Paste Selection" msgstr "Proceni Označeno" #: ../../docs/tutorials/editor/default_key_mapping.rst:466 msgid "``tiles_editor/paste``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:468 msgid "``tiles_editor/delete``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:470 msgid "Cancel" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:470 msgid ":kbd:`Esc`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:470 msgid "``tiles_editor/cancel``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:472 #: ../../docs/tutorials/2d/using_tilemaps.rst:209 msgid "Paint" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:472 msgid "``tiles_editor/paint_tool``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:474 #: ../../docs/tutorials/2d/using_tilemaps.rst:238 msgid "Line" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:474 msgid ":kbd:`L`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:474 msgid "``tiles_editor/line_tool``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:476 msgid "Rect" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:476 msgid "``tiles_editor/rect_tool``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:478 msgid "Bucket" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:478 msgid ":kbd:`B`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:478 msgid "``tiles_editor/bucket_tool``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:480 #: ../../docs/tutorials/2d/using_tilemaps.rst:301 msgid "Picker" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:480 msgid ":kbd:`P`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:480 msgid "``tiles_editor/picker``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:482 #: ../../docs/tutorials/2d/using_tilemaps.rst:313 msgid "Eraser" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:482 msgid "``tiles_editor/eraser``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:484 msgid "Flip Horizontally" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:484 msgid ":kbd:`C`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:484 msgid "``tiles_editor/flip_tile_horizontal``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:486 msgid "Flip Vertically" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:486 msgid ":kbd:`V`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:486 msgid "``tiles_editor/flip_tile_vertical``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:488 msgid "Rotate Left" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:488 msgid ":kbd:`Z`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:488 msgid "``tiles_editor/rotate_tile_left``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:490 msgid "Rotate Right" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:490 msgid ":kbd:`X`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:490 msgid "``tiles_editor/rotate_tile_right``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:494 msgid "Tileset Editor" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:499 msgid "Next Coordinate" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:499 msgid "``tileset_editor/next_shape``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:501 msgid "Previous Coordinate" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:501 msgid ":kbd:`PgUp`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:501 msgid "``tileset_editor/previous_shape``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:503 msgid "Region Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:503 msgid ":kbd:`1`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:503 msgid "``tileset_editor/editmode_region``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:505 msgid "Collision Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:505 msgid ":kbd:`2`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:505 msgid "``tileset_editor/editmode_collision``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:507 msgid "Occlusion Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:507 msgid ":kbd:`3`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:507 msgid "``tileset_editor/editmode_occlusion``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:509 msgid "Navigation Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:509 msgid ":kbd:`4`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:509 msgid "``tileset_editor/editmode_navigation``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:511 msgid "Bitmask Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:511 msgid ":kbd:`5`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:511 msgid "``tileset_editor/editmode_bitmask``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:513 msgid "Priority Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:513 msgid ":kbd:`6`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:513 msgid "``tileset_editor/editmode_priority``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:515 msgid "Icon Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:515 msgid ":kbd:`7`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:515 msgid "``tileset_editor/editmode_icon``" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:517 msgid "Z Index Mode" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:517 msgid ":kbd:`8`" msgstr "" #: ../../docs/tutorials/editor/default_key_mapping.rst:517 msgid "``tileset_editor/editmode_z_index``" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:4 #, fuzzy msgid "Customizing the interface" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/customizing_editor.rst:6 msgid "" "Godot's interface lives in a single window by default. Since Godot 4.0, you " "can split several elements to separate windows to better make use of multi-" "monitor setups." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:11 msgid "Moving and resizing docks" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:13 msgid "" "Click and drag on the edge of any dock or panel to resize it horizontally or " "vertically:" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:20 #, fuzzy msgid "Resizing a dock in the editor" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/customizing_editor.rst:22 msgid "" "Click the \"3 vertical dots\" icon at the top of any dock to change its " "location, or split it to a separate window by choosing **Make Floating** in " "the submenu that appears:" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:29 #, fuzzy msgid "Moving a dock in the editor" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/customizing_editor.rst:31 msgid "" "To move a floating dock back to the editor window, close the dock window " "using the **×** button in the top-right corner of the window (or in the top-" "left corner on macOS). Alternatively, you can press :kbd:`Alt + F4` while " "the split window is focused." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:43 msgid "Splitting the script or shader editor to its own window" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:47 msgid "" "This feature is only available on platforms that support spawning multiple " "windows: Windows, macOS and Linux." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:50 msgid "" "This feature is also not available if **Single Window Mode** is enabled in " "the Editor Settings." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:53 msgid "" "Since Godot 4.1, you can split the script or shader editor to its own window." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:55 msgid "" "To split the script editor to its own window, click the corresponding button " "in the top-right corner of the script editor:" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:62 msgid "Splitting the script editor to its own window" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:64 msgid "" "To split the shader editor to its own window, click the corresponding button " "in the top-right corner of the script editor:" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:71 msgid "Splitting the shader editor to its own window" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:73 msgid "" "To go back to the previous state (with the script/shader editor embedded in " "the editor window), close the split window using the **×** button in the top-" "right corner of the window (or in the top-left corner on macOS). " "Alternatively, you can press :kbd:`Alt + F4` while the split window is " "focused." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:79 #, fuzzy msgid "Customizing editor layouts" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/customizing_editor.rst:81 msgid "" "You may want to save and load a dock configuration depending on the kind of " "task you're working on. For instance, when working on animating a character, " "it may be more convenient to have docks laid out in a different fashion " "compared to when you're designing a level." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:86 msgid "" "For this purpose, Godot provides a way to save and restore editor layouts. " "Before saving a layout, make changes to the docks you'd like to save. The " "following changes are persisted to the saved layout:" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:90 msgid "Moving a dock." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:91 msgid "Resizing a dock." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:92 msgid "Making a dock floating." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:93 msgid "Changing a floating dock's position or size." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:94 msgid "" "FileSystem dock properties: split mode, display mode, sorting order, file " "list display mode, selected paths and unfolded paths." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:99 msgid "" "Splitting the script or shader editor to its own window is *not* persisted " "as part of a layout." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:102 msgid "" "After making changes, open the **Editor** menu at the top of the editor then " "choose **Editor Layouts > Save**. Enter a name for the layout, then click " "**Save**. If you've already saved an editor layout, you can choose to " "override an existing layout using the list." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:107 msgid "" "After making changes, open the **Editor** menu at the top of the editor then " "choose **Editor Layouts**. In the dropdown list, you will see a list of " "saved editor layouts, plus **Default** which is a hardcoded editor layout " "that can't be removed. The default layout matches a fresh Godot installation " "with no changes made to the docks' position and size, and no floating docks." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:113 msgid "" "You can remove a layout using the **Delete** option in the **Editor " "Layouts** dropdown." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:118 msgid "" "If you name the saved layout ``Default`` (case-sensitive), the default " "editor layout will be overwritten. Note that the ``Default`` does not appear " "in the list of layouts to overwrite until you overwrite it once, but you can " "still write its name manually." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:123 msgid "" "You can go back to the standard default layout by removing the ``Default`` " "layout after overriding it. (This option does not appear if you haven't " "overridden the default layout yet.)" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:127 msgid "" "Editor layouts are saved to a file named ``editor_layouts.cfg`` in the " "configuration path of the :ref:`doc_data_paths_editor_data_paths`." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:131 #, fuzzy msgid "Customizing editor settings" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/customizing_editor.rst:133 msgid "" "In the **Editor** menu at the top of the editor, you can find an **Editor " "Settings** option. This opens a window similar to the Project Settings, but " "with settings used by the editor. These settings are shared across all " "projects and are not saved in the project files." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:142 #, fuzzy msgid "The Editor Settings window" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/customizing_editor.rst:144 msgid "Some commonly changed settings are:" msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:146 msgid "" "**Interface > Editor > Editor Language:** Controls the language the editor " "displays in. To make English tutorials easier to follow, you may want to " "change this to English so that menu names are identical to names referred to " "by tutorials. The language can also be changed in the top-right corner of " "the project manager." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:151 msgid "" "**Interface > Editor > Display Scale:** Controls how large UI elements " "display on screen. The default **Auto** setting finds a suitable value based " "on your display's DPI and resolution. Due to engine limitations, it only " "takes the display-provided scaling factor on macOS, not on Windows or Linux." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:155 msgid "" "**Interface > Editor > Single Window Mode:** If enabled, this forces the " "editor to use a single window. This disables certain features such as " "splitting the script/shaders editor to their own window. Single-window mode " "can be more stable, especially on Linux when using Wayland." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:159 msgid "" "**Interface > Theme > Preset:** The editor theme preset to use. The " "**Light** theme preset may be easier to read if you're outdoors or in a room " "with sunlight. The **Black (OLED)** preset can reduce power consumption on " "OLED displays, which are increasingly common in laptops and phones/tablets." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:163 msgid "" "**FileSystem > Directories > Autoscan Project Path:** This can be set to a " "folder path that will be automatically scanned for projects in the project " "manager every time it starts." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:166 msgid "" "**FileSystem > Directories > Default Project Path:** Controls the default " "location where new projects are created in the project manager." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:168 msgid "" "**Editors > 3D > Emulate Numpad:** This allows using the top row 0-9 keys in " "the 3D editor as their equivalent numpad keys. It's recommended to enable " "this option if you don't have a number pad on your keyboard." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:171 msgid "" "**Editors > 3D > Emulate 3 Button Mouse:** This allows using the pan, zoom " "and orbit modifiers in the 3D editor even when not holding down any mouse " "button. It's recommended to enable this option if you're using a trackpad." msgstr "" #: ../../docs/tutorials/editor/customizing_editor.rst:175 msgid "" "See the :ref:`class_EditorSettings` class reference for a complete " "description of most editor settings. You can also hover an editor setting's " "name with the mouse in the Editor Settings to show its description." msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:4 #, fuzzy msgid "Using the Android editor" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/using_the_android_editor.rst:6 msgid "" "In 2023, `we added `__ a `Android port of the " "editor `__ that can be used to " "work on new or existing projects on Android devices." msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:12 msgid "" "The Android editor is in beta testing stage, while we continue to refine the " "experience, and bring it up to parity with the Desktop version of the " "editor. See :ref:`doc_using_the_android_editor_limitations` below." msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:16 msgid "Android devices support" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:18 msgid "" "The Android editor requires devices running Android 5 Lollipop or higher, " "with at least OpenGL 3 support. This includes (not exhaustive):" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:20 msgid "Android tablets, foldables and large phones" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:21 msgid "Android-powered netbooks" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:22 #, fuzzy msgid "Chromebooks supporting Android apps" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/using_the_android_editor.rst:27 msgid "Required Permissions" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:29 msgid "" "The Android editor requires the `All files access permission `__. The permission allows the editor to create / import / read " "project files from any file locations on the device. Without the permission, " "the editor is still functional, but has limited access to the device's files " "and directories." msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:34 msgid "Limitations & known issues" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:36 msgid "Here are the known limitations and issues of the Android editor:" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:38 msgid "No C#/Mono support" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:39 msgid "No support for external script editors" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:40 msgid "" "While available, the *Vulkan Forward+* renderer is not recommended due to " "severe performance issues" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:41 msgid "" "No support for building and exporting an Android APK binary. As a " "workaround, you can generate and export a `Godot PCK or ZIP file `__" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:43 msgid "No support for building and exporting binaries for other platforms" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:44 msgid "" "Performance and stability issues when using the *Vulkan Mobile* renderer for " "a project" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:45 msgid "UX not optimized for Android phones form-factor" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:46 msgid "" "`Android Go devices `__ lacks the *All files access* permission required for device " "read/write access. As a workaround, when using a Android Go device, it's " "recommended to create new projects only in the Android *Documents* or " "*Downloads* directories." msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:49 msgid "" "The editor doesn't properly resume when *Don't keep activities* is enabled " "in the *Developer Options*" msgstr "" #: ../../docs/tutorials/editor/using_the_android_editor.rst:53 msgid "" "See the `list of open issues on GitHub related to the Android editor " "`__ " "for a list of known bugs." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:6 #, fuzzy msgid "Using the Web editor" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/using_the_web_editor.rst:8 msgid "" "Since Godot 3.3, there is a `Web editor `__ " "you can use to work on new or existing projects." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:13 msgid "" "The web editor is in a preliminary stage. While its feature set may be " "sufficient for educational purposes, it is currently **not recommended for " "production work**. See :ref:`doc_using_the_web_editor_limitations` below." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:18 msgid "Browser support" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:20 msgid "" "The Web editor requires support for WebAssembly's SharedArrayBuffer. This is " "in turn required to support threading in the browser. The following desktop " "browsers support WebAssembly threading and can therefore run the web editor:" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:24 msgid "Chrome 68 or later" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:25 msgid "Firefox 79 or later" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:26 msgid "Edge 79 or later" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:28 msgid "" "Opera and Safari are not supported yet. Safari may work in the future once " "proper threading support is added." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:31 msgid "**Mobile browsers are currently not supported.**" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:33 msgid "" "The web editor only supports the Compatibility rendering method, as there is " "no stable way to run Vulkan applications on the web yet." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:38 msgid "" "If you use Linux, due to `poor Firefox WebGL performance `__, it's recommended to use a Chromium-" "based browser instead of Firefox." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:45 #: ../../docs/tutorials/3d/3d_text.rst:55 #: ../../docs/tutorials/3d/3d_text.rst:102 #: ../../docs/tutorials/3d/3d_text.rst:139 #: ../../docs/tutorials/3d/using_decals.rst:222 #: ../../docs/tutorials/3d/particles/subemitters.rst:67 #: ../../docs/tutorials/3d/global_illumination/reflection_probes.rst:183 #: ../../docs/tutorials/assets_pipeline/exporting_3d_scenes.rst:24 #: ../../docs/tutorials/export/exporting_for_web.rst:80 #: ../../docs/tutorials/performance/general_optimization.rst:75 #: ../../docs/tutorials/physics/large_world_coordinates.rst:222 msgid "Limitations" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:47 msgid "" "Due to limitations on the Godot or Web platform side, the following features " "are currently missing:" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:50 msgid "No C#/Mono support." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:51 msgid "No GDExtension support." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:52 msgid "" "No debugging support. This means GDScript debugging/profiling, live scene " "editing, the Remote Scene tree dock and other features that rely on the " "debugger protocol will not work." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:55 msgid "" "No project exporting. As a workaround, you can download the project source " "using **Project > Tools > Download Project Source** and export it using a " "`native version of the Godot editor `__." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:58 msgid "The editor won't warn you when closing the tab with unsaved changes." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:59 msgid "" "No lightmap baking support. You can still use existing lightmaps if they " "were baked with a native version of the Godot editor (e.g. by importing an " "existing project)." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:63 msgid "" "The following features are unlikely to be supported due to inherent " "limitations of the Web platform:" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:66 msgid "No support for external script editors." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:67 msgid "No support for Android one-click deploy." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:71 msgid "" "See the `list of open issues on GitHub related to the web editor `__ " "for a list of known bugs." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:75 #, fuzzy msgid "Importing a project" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/using_the_web_editor.rst:77 msgid "To import an existing project, the current process is as follows:" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:79 msgid "" "Specify a ZIP file to preload on the HTML5 filesystem using the **Preload " "project ZIP** input." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:81 msgid "" "Run the editor by clicking **Start Godot editor**. The Godot Project Manager " "should appear after 10-20 seconds. On slower machines or connections, " "loading may take up to a minute." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:84 msgid "" "In the dialog that appears at the middle of the window, specify a name for " "the folder to create then click the **Create Folder** button (it doesn't " "have to match the ZIP archive's name)." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:87 msgid "Click **Install & Edit** and the project will open in the editor." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:91 msgid "" "It's important to place the project folder somewhere in ``/home/web_user/``. " "If your project folder is placed outside ``/home/web_user/``, you will lose " "your project when closing the editor!" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:95 msgid "" "When you follow the steps described above, the project folder will always be " "located in ``/home/web_user/projects``, keeping it safe." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:99 #, fuzzy msgid "Editing and running a project" msgstr "Kreiranje Sadržaja" #: ../../docs/tutorials/editor/using_the_web_editor.rst:101 msgid "" "Unlike the native version of Godot, the web editor is constrained to a " "single window. Therefore, it cannot open a new window when running the " "project. Instead, when you run the project by clicking the Run button or " "pressing :kbd:`F5`, it will appear to \"replace\" the editor window." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:106 msgid "" "The web editor offers an alternative way to deal with the editor and game " "windows (which are now \"tabs\"). You can switch between the **Editor** and " "**Game** tabs using the buttons on the top. You can also close the running " "game or editor by clicking the **×** button next to those tabs." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:112 msgid "Where are my project files?" msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:114 msgid "" "Due to browser security limitations, the editor will save the project files " "to the browser's IndexedDB storage. This storage isn't accessible as a " "regular folder on your machine, but is abstracted away in a database." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:118 msgid "" "You can download the project files as a ZIP archive by using **Project > " "Tools > Download Project Source**. This can be used to export the project " "using a `native Godot editor `__, since " "exporting from the web editor isn't supported yet." msgstr "" #: ../../docs/tutorials/editor/using_the_web_editor.rst:123 msgid "" "In the future, it may be possible to use the `HTML5 FileSystem API `__ to store the project " "files on the user's filesystem as the native editor would do. However, this " "isn't implemented yet." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:4 msgid "Command line tutorial" msgstr "" #: ../../docs/tutorials/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/tutorials/editor/command_line_tutorial.rst:16 msgid "" "On Windows and Linux, you can run a Godot binary in a terminal by specifying " "its relative or absolute path." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:19 msgid "" "On macOS, the process is different due to Godot being contained within an ``." "app`` bundle (which is a *folder*, not a file). To run a Godot binary from a " "terminal on macOS, you have to ``cd`` to the folder where the Godot " "application bundle is located, then run ``Godot.app/Contents/MacOS/Godot`` " "followed by any command line arguments. If you've renamed the application " "bundle from ``Godot`` to another name, make sure to edit this command line " "accordingly." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:28 msgid "Command line reference" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:30 msgid "release" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:31 msgid "debug" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:32 #, fuzzy msgid "editor" msgstr "**Za uređivač:**" #: ../../docs/tutorials/editor/command_line_tutorial.rst:34 msgid "**Legend**" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:36 msgid "" "|release| Available in editor builds, debug export templates and release " "export templates." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:37 msgid "|debug| Available in editor builds and debug export templates only." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:38 msgid "|editor| Only available in editor builds." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:40 msgid "" "Note that unknown command line arguments have no effect whatsoever. The " "engine will **not** warn you when using a command line argument that doesn't " "exist with a given build type." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:44 msgid "**General options**" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:47 #: ../../docs/tutorials/editor/command_line_tutorial.rst:61 #: ../../docs/tutorials/editor/command_line_tutorial.rst:116 #: ../../docs/tutorials/editor/command_line_tutorial.rst:140 #: ../../docs/tutorials/editor/command_line_tutorial.rst:189 #: ../../docs/contributing/development/configuring_an_ide/qt_creator.rst:59 msgid "Command" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:47 #: ../../docs/tutorials/editor/command_line_tutorial.rst:61 #: ../../docs/tutorials/editor/command_line_tutorial.rst:116 #: ../../docs/tutorials/editor/command_line_tutorial.rst:140 #: ../../docs/tutorials/editor/command_line_tutorial.rst:189 #: ../../docs/tutorials/export/exporting_for_macos.rst:91 #: ../../docs/tutorials/export/exporting_for_macos.rst:111 #: ../../docs/tutorials/export/exporting_for_macos.rst:144 #: ../../docs/tutorials/export/exporting_for_macos.rst:187 #: ../../docs/tutorials/io/binary_serialization_api.rst:120 #: ../../docs/tutorials/io/binary_serialization_api.rst:131 #: ../../docs/tutorials/io/binary_serialization_api.rst:140 #: ../../docs/tutorials/io/binary_serialization_api.rst:151 #: ../../docs/tutorials/io/binary_serialization_api.rst:160 #: ../../docs/tutorials/io/binary_serialization_api.rst:169 #: ../../docs/tutorials/io/binary_serialization_api.rst:182 #: ../../docs/tutorials/io/binary_serialization_api.rst:193 #: ../../docs/tutorials/io/binary_serialization_api.rst:208 #: ../../docs/tutorials/io/binary_serialization_api.rst:221 #: ../../docs/tutorials/io/binary_serialization_api.rst:240 #: ../../docs/tutorials/io/binary_serialization_api.rst:255 #: ../../docs/tutorials/io/binary_serialization_api.rst:270 #: ../../docs/tutorials/io/binary_serialization_api.rst:289 #: ../../docs/tutorials/io/binary_serialization_api.rst:314 #: ../../docs/tutorials/io/binary_serialization_api.rst:345 #: ../../docs/tutorials/io/binary_serialization_api.rst:360 #: ../../docs/tutorials/io/binary_serialization_api.rst:369 #: ../../docs/tutorials/io/binary_serialization_api.rst:380 #: ../../docs/tutorials/io/binary_serialization_api.rst:390 #: ../../docs/tutorials/io/binary_serialization_api.rst:412 #: ../../docs/tutorials/io/binary_serialization_api.rst:421 #: ../../docs/tutorials/io/binary_serialization_api.rst:430 #: ../../docs/tutorials/io/binary_serialization_api.rst:442 #: ../../docs/tutorials/io/binary_serialization_api.rst:466 #: ../../docs/tutorials/io/binary_serialization_api.rst:478 #: ../../docs/tutorials/io/binary_serialization_api.rst:490 #: ../../docs/tutorials/io/binary_serialization_api.rst:503 #: ../../docs/tutorials/io/binary_serialization_api.rst:514 #: ../../docs/tutorials/io/binary_serialization_api.rst:525 #: ../../docs/tutorials/io/binary_serialization_api.rst:536 #: ../../docs/tutorials/io/binary_serialization_api.rst:547 #: ../../docs/tutorials/io/binary_serialization_api.rst:555 #: ../../docs/tutorials/io/binary_serialization_api.rst:568 #: ../../docs/tutorials/io/binary_serialization_api.rst:581 #: ../../docs/tutorials/io/binary_serialization_api.rst:596 #: ../../docs/tutorials/inputs/inputevent.rst:155 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:248 #: ../../docs/tutorials/scripting/gdscript/gdscript_basics.rst:154 #: ../../docs/tutorials/scripting/gdscript/gdscript_documentation_comments.rst:35 #: ../../docs/tutorials/scripting/gdscript/gdscript_documentation_comments.rst:90 #: ../../docs/tutorials/scripting/how_to_read_the_godot_api.rst:34 #: ../../docs/tutorials/scripting/creating_script_templates.rst:202 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:23 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:713 #: ../../docs/tutorials/shaders/shader_reference/shading_language.rst:779 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:15 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:100 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:153 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:247 #: ../../docs/tutorials/shaders/shader_reference/spatial_shader.rst:411 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:17 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:54 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:101 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:159 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:232 #: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:286 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:34 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:59 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:78 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:131 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:148 #: ../../docs/tutorials/shaders/shader_reference/particle_shader.rst:178 #: ../../docs/tutorials/shaders/shader_reference/sky_shader.rst:130 #: ../../docs/tutorials/shaders/shader_reference/sky_shader.rst:155 #: ../../docs/tutorials/shaders/shader_reference/sky_shader.rst:194 #: ../../docs/tutorials/shaders/shader_reference/fog_shader.rst:36 #: ../../docs/tutorials/shaders/shader_reference/fog_shader.rst:58 #: ../../docs/tutorials/shaders/visual_shaders.rst:117 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:91 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:164 #: ../../docs/tutorials/shaders/converting_glsl_to_godot_shaders.rst:229 #: ../../docs/tutorials/xr/xr_action_map.rst:115 #: ../../docs/tutorials/xr/xr_action_map.rst:187 msgid "Description" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:49 msgid "``-h``, ``--help``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:49 msgid "|release| Display the list of command line options." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:51 msgid "``--version``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:51 msgid "|release| Display the version string." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:53 msgid "``-v``, ``--verbose``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:53 msgid "|release| Use verbose stdout mode." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:55 msgid "``-q``, ``--quiet``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:55 msgid "" "|release| Quiet mode, silences stdout messages. Errors are still displayed." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:58 msgid "**Run options**" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:63 msgid "``--``, ``++``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:63 msgid "" "|release| Separator for user-provided arguments. Following arguments are not " "used by the engine, but can be read from ``OS.get_cmdline_user_args()``." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:65 msgid "``-e``, ``--editor``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:65 msgid "|editor| Start the editor instead of running the scene." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:67 msgid "``-p``, ``--project-manager``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:67 msgid "|editor| Start the Project Manager, even if a project is auto-detected." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:69 msgid "``--debug-server ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:69 msgid "" "|editor| Start the editor debug server (``://[:]``, " "e.g. ``tcp://127.0.0.1:6007``)" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:71 msgid "``--quit``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:71 msgid "|release| Quit after the first iteration." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:73 msgid "``--quit-after``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:73 msgid "" "|release| Quit after the given number of iterations. Set to 0 to disable." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:75 msgid "``-l``, ``--language ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:75 msgid "" "|release| Use a specific locale. ```` follows the format " "``language_Script_COUNTRY_VARIANT`` where language is a 2 or 3-letter " "language code in lowercase and the rest is optional. See :ref:`doc_locales` " "for more details." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:78 msgid "``--path ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:78 msgid "" "|release| Path to a project (```` must contain a 'project.godot' " "file)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:80 msgid "``-u``, ``--upwards``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:80 msgid "|release| Scan folders upwards for 'project.godot' file." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:82 msgid "``--main-pack ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:82 msgid "|release| Path to a pack (.pck) file to load." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:84 msgid "``--render-thread ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:84 msgid "" "|release| Render thread mode ('unsafe', 'safe', 'separate'). See :ref:" "`Thread Model ` for more details." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:87 msgid "``--remote-fs
``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:87 msgid "|release| Remote filesystem (``[:]`` address)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:89 msgid "``--remote-fs-password ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:89 msgid "|release| Password for remote filesystem." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:91 msgid "``--audio-driver ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:91 msgid "" "|release| Audio driver. Use ``--help`` first to display the list of " "available drivers." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:93 msgid "``--display-driver ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:93 msgid "" "|release| Display driver (and rendering driver). Use ``--help`` first to " "display the list of available drivers." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:95 msgid "``--rendering-method ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:95 msgid "|release| Renderer name. Requires driver support." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:97 msgid "``--rendering-driver ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:97 msgid "" "|release| Rendering driver (depends on display driver). Use ``--help`` first " "to display the list of available drivers." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:99 msgid "``--gpu-index ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:99 msgid "" "|release| Use a specific GPU (run with ``--verbose`` to get available device " "list)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:101 msgid "``--text-driver ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:101 msgid "|release| Text driver (Fonts, BiDi, shaping)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:103 msgid "``--tablet-driver ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:103 msgid "|release| Pen tablet input driver." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:105 msgid "``--headless``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:105 msgid "" "|release| Enable headless mode (``--display-driver headless --audio-driver " "Dummy``). Useful for servers and with ``--script``." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:107 msgid "``--write-movie ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:107 msgid "" "|release| Run the engine in a way that a movie is written (usually with .avi " "or .png extension). ``--fixed-fps`` is forced when enabled, but can be used " "to change movie FPS. ``--disable-vsync`` can speed up movie writing but " "makes interaction more difficult. ``--quit-after`` can be used to specify " "the number of frames to write." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:113 msgid "**Display options**" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:118 msgid "``-f``, ``--fullscreen``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:118 msgid "|release| Request fullscreen mode." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:120 msgid "``-m``, ``--maximized``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:120 msgid "|release| Request a maximized window." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:122 msgid "``-w``, ``--windowed``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:122 msgid "|release| Request windowed mode." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:124 msgid "``-t``, ``--always-on-top``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:124 msgid "|release| Request an always-on-top window." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:126 msgid "``--resolution x``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:126 msgid "|release| Request window resolution." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:128 msgid "``--position ,``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:128 msgid "|release| Request window position." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:130 msgid "``--screen ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:130 msgid "|release| Request window screen." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:132 msgid "``--single-window``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:132 msgid "|release| Use a single window (no separate subwindows)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:134 msgid "``--xr-mode ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:134 msgid "|release| Select XR mode ('default', 'off', 'on')." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:137 msgid "**Debug options**" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:142 msgid "``-d``, ``--debug``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:142 msgid "|release| Debug (local stdout debugger)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:144 msgid "``-b``, ``--breakpoints``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:144 msgid "" "|release| Breakpoint list as source::line comma-separated pairs, no spaces " "(use ``%20`` instead)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:146 msgid "``--profiling``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:146 msgid "|release| Enable profiling in the script debugger." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:148 msgid "``--gpu-profile``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:148 msgid "" "|release| Show a GPU profile of the tasks that took the most time during " "frame rendering." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:150 msgid "``--gpu-validation``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:150 msgid "" "|release| Enable graphics API :ref:`validation layers " "` for debugging." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:152 msgid "``--gpu-abort``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:152 msgid "" "|debug| Abort on GPU errors (usually validation layer errors), may help see " "the problem if your system freezes." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:154 msgid "``--remote-debug ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:154 msgid "" "|release| Remote debug (``://[:]``, e.g. " "``tcp://127.0.0.1:6007``)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:156 msgid "``--single-threaded-scene``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:156 msgid "" "|release| Scene tree runs in single-threaded mode. Sub-thread groups are " "disabled and run on the main thread." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:158 msgid "``--debug-collisions``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:158 msgid "|debug| Show collision shapes when running the scene." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:160 msgid "``--debug-paths``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:160 msgid "|debug| Show path lines when running the scene." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:162 msgid "``--debug-navigation``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:162 msgid "|debug| Show navigation polygons when running the scene." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:164 msgid "``--debug-avoidance``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:164 msgid "|debug| Show navigation avoidance debug visuals when running the scene." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:166 msgid "``--debug-stringnames``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:166 msgid "" "|debug| Print all StringName allocations to stdout when the engine quits." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:168 msgid "``--frame-delay ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:168 msgid "" "|release| Simulate high CPU load (delay each frame by milliseconds)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:170 msgid "``--time-scale ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:170 msgid "" "|release| Force time scale (higher values are faster, 1.0 is normal speed)." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:172 msgid "``--disable-vsync``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:172 msgid "" "|release| Forces disabling of vertical synchronization, even if enabled in " "the project settings. Does not override driver-level V-Sync enforcement." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:175 msgid "``--disable-render-loop``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:175 msgid "" "|release| Disable render loop so rendering only occurs when called " "explicitly from script." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:177 msgid "``--disable-crash-handler``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:177 msgid "|release| Disable crash handler when supported by the platform code." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:179 msgid "``--fixed-fps ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:179 msgid "" "|release| Force a fixed number of frames per second. This setting disables " "real-time synchronization." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:181 msgid "``--delta-smoothing ``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:181 msgid "" "|release| Enable or disable frame delta smoothing ('enable', 'disable')." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:183 msgid "``--print-fps``" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:183 msgid "|release| Print the frames per second to the stdout." msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:186 msgid "**Standalone tools**" msgstr "" #: ../../docs/tutorials/editor/command_line_tutorial.rst:191 msgid "``-s``, ``--script